mirror of
https://github.com/octoleo/plantuml.git
synced 2024-12-22 02:49:06 +00:00
Import version 1.2021.7
This commit is contained in:
parent
d8e1d6e69a
commit
39c585ee09
2
pom.xml
2
pom.xml
@ -35,7 +35,7 @@
|
||||
|
||||
<groupId>net.sourceforge.plantuml</groupId>
|
||||
<artifactId>plantuml</artifactId>
|
||||
<version>1.2021.6-SNAPSHOT</version>
|
||||
<version>1.2021.8-SNAPSHOT</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>PlantUML</name>
|
||||
|
@ -1,63 +0,0 @@
|
||||
/* This file is taken from
|
||||
https://github.com/andreas1327250/argon2-java
|
||||
|
||||
Original Author: Andreas Gadermaier <up.gadermaier@gmail.com>
|
||||
*/
|
||||
package ext.plantuml.com.at.gadermaier.argon2;
|
||||
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.Constraints.MAX_AD_LENGTH;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.Constraints.MAX_ITERATIONS;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.Constraints.MAX_PARALLELISM;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.Constraints.MAX_PWD_LENGTH;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.Constraints.MAX_SALT_LENGTH;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.Constraints.MAX_SECRET_LENGTH;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.Constraints.MIN_ITERATIONS;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.Constraints.MIN_PARALLELISM;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.Constraints.MIN_PWD_LENGTH;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.Constraints.MIN_SALT_LENGTH;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.Messages.ADDITIONAL_MAX_MSG;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.Messages.M_MIN_MSG;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.Messages.PWD_MAX_MSG;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.Messages.PWD_MIN_MSG;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.Messages.P_MAX_MSG;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.Messages.P_MIN_MSG;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.Messages.SALT_MAX_MSG;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.Messages.SALT_MIN_MSG;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.Messages.SECRET_MAX_MSG;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.Messages.T_MAX_MSG;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.Messages.T_MIN_MSG;
|
||||
|
||||
import ext.plantuml.com.at.gadermaier.argon2.exception.Argon2InvalidParameterException;
|
||||
|
||||
class Validation {
|
||||
|
||||
static void validateInput(Argon2 argon2){
|
||||
String message = null;
|
||||
|
||||
if (argon2.getLanes() < MIN_PARALLELISM)
|
||||
message = P_MIN_MSG;
|
||||
else if (argon2.getLanes() > MAX_PARALLELISM)
|
||||
message = P_MAX_MSG;
|
||||
else if(argon2.getMemory() < 2 * argon2.getLanes())
|
||||
message = M_MIN_MSG;
|
||||
else if(argon2.getIterations() < MIN_ITERATIONS)
|
||||
message = T_MIN_MSG;
|
||||
else if(argon2.getIterations() > MAX_ITERATIONS)
|
||||
message = T_MAX_MSG;
|
||||
else if(argon2.getPasswordLength() < MIN_PWD_LENGTH)
|
||||
message = PWD_MIN_MSG;
|
||||
else if(argon2.getPasswordLength() > MAX_PWD_LENGTH)
|
||||
message = PWD_MAX_MSG;
|
||||
else if(argon2.getSaltLength() < MIN_SALT_LENGTH)
|
||||
message = SALT_MIN_MSG;
|
||||
else if(argon2.getSaltLength() > MAX_SALT_LENGTH)
|
||||
message = SALT_MAX_MSG;
|
||||
else if(argon2.getSecretLength() > MAX_SECRET_LENGTH)
|
||||
message = SECRET_MAX_MSG;
|
||||
else if(argon2.getAdditionalLength() > MAX_AD_LENGTH)
|
||||
message = ADDITIONAL_MAX_MSG;
|
||||
|
||||
if(message != null)
|
||||
throw new Argon2InvalidParameterException(message);
|
||||
}
|
||||
}
|
@ -39,6 +39,7 @@ import static net.sourceforge.plantuml.ugraphic.ImageBuilder.imageBuilder;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.util.Objects;
|
||||
|
||||
import net.sourceforge.plantuml.command.BlocLines;
|
||||
import net.sourceforge.plantuml.command.Command;
|
||||
@ -53,7 +54,6 @@ import net.sourceforge.plantuml.graphic.HorizontalAlignment;
|
||||
import net.sourceforge.plantuml.graphic.VerticalAlignment;
|
||||
import net.sourceforge.plantuml.stats.StatsUtilsIncrement;
|
||||
import net.sourceforge.plantuml.style.ClockwiseTopRightBottomLeft;
|
||||
import net.sourceforge.plantuml.style.StyleBuilder;
|
||||
import net.sourceforge.plantuml.ugraphic.ImageBuilder;
|
||||
import net.sourceforge.plantuml.ugraphic.color.NoSuchColorException;
|
||||
import net.sourceforge.plantuml.version.License;
|
||||
@ -61,9 +61,13 @@ import net.sourceforge.plantuml.version.Version;
|
||||
|
||||
public abstract class AbstractPSystem implements Diagram {
|
||||
|
||||
private UmlSource source;
|
||||
private final UmlSource source;
|
||||
private Scale scale;
|
||||
|
||||
public AbstractPSystem(UmlSource source) {
|
||||
this.source = Objects.requireNonNull(source);
|
||||
}
|
||||
|
||||
private String getVersion() {
|
||||
final StringBuilder toAppend = new StringBuilder();
|
||||
toAppend.append("PlantUML version ");
|
||||
@ -100,10 +104,6 @@ public abstract class AbstractPSystem implements Diagram {
|
||||
return getSource().seed();
|
||||
}
|
||||
|
||||
final public void setSource(UmlSource source) {
|
||||
this.source = source;
|
||||
}
|
||||
|
||||
public int getNbImages() {
|
||||
return 1;
|
||||
}
|
||||
|
@ -47,13 +47,15 @@ import net.sourceforge.plantuml.command.CommandExecutionResult;
|
||||
import net.sourceforge.plantuml.core.Diagram;
|
||||
import net.sourceforge.plantuml.core.DiagramDescription;
|
||||
import net.sourceforge.plantuml.core.ImageData;
|
||||
import net.sourceforge.plantuml.core.UmlSource;
|
||||
import net.sourceforge.plantuml.ugraphic.color.NoSuchColorException;
|
||||
|
||||
public class NewpagedDiagram extends AbstractPSystem {
|
||||
|
||||
private final List<Diagram> diagrams = new ArrayList<>();
|
||||
|
||||
public NewpagedDiagram(AbstractPSystem diag1, AbstractPSystem diag2) {
|
||||
public NewpagedDiagram(UmlSource source, AbstractPSystem diag1, AbstractPSystem diag2) {
|
||||
super(source);
|
||||
if (diag1 instanceof NewpagedDiagram) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
|
@ -72,7 +72,7 @@ public class Option {
|
||||
private OptionPreprocOutputMode preprocessorOutput = null;
|
||||
private boolean failfast = false;
|
||||
private boolean failfast2 = false;
|
||||
private boolean pattern = false;
|
||||
|
||||
private boolean duration = false;
|
||||
private boolean debugsvek = false;
|
||||
private boolean splash = false;
|
||||
@ -263,8 +263,6 @@ public class Option {
|
||||
pipeMap = true;
|
||||
} else if (s.equalsIgnoreCase("-pipenostderr")) {
|
||||
pipeNoStdErr = true;
|
||||
} else if (s.equalsIgnoreCase("-pattern")) {
|
||||
pattern = true;
|
||||
} else if (s.equalsIgnoreCase("-syntax")) {
|
||||
syntax = true;
|
||||
OptionFlags.getInstance().setQuiet(true);
|
||||
@ -571,10 +569,6 @@ public class Option {
|
||||
return syntax;
|
||||
}
|
||||
|
||||
public final boolean isPattern() {
|
||||
return pattern;
|
||||
}
|
||||
|
||||
public FileFormatOption getFileFormatOption() {
|
||||
if (debugsvek) {
|
||||
fileFormatOption.setDebugSvek(true);
|
||||
|
@ -133,7 +133,6 @@ public class OptionPrint {
|
||||
System.out.println(" -checkonly\t\tTo check the syntax of files without generating images");
|
||||
System.out.println(" -failfast\t\tTo stop processing as soon as a syntax error in diagram occurs");
|
||||
System.out.println(" -failfast2\t\tTo do a first syntax check before processing files, to fail even faster");
|
||||
System.out.println(" -pattern\t\tTo print the list of Regular Expression used by PlantUML");
|
||||
System.out.println(" -duration\t\tTo print the duration of complete diagrams processing");
|
||||
System.out.println(" -nbthread N\t\tTo use (N) threads for processing");
|
||||
System.out.println(" -nbthread auto\tTo use " + Option.defaultNbThreads() + " threads for processing");
|
||||
|
@ -126,12 +126,11 @@ public class PSystemBuilder {
|
||||
|
||||
final DiagramType diagramType = umlSource.getDiagramType();
|
||||
final List<PSystemError> errors = new ArrayList<>();
|
||||
final List<PSystemFactory> factories = getAllFactories(skinParam);
|
||||
for (PSystemFactory systemFactory : factories) {
|
||||
if (diagramType != systemFactory.getDiagramType()) {
|
||||
continue;
|
||||
}
|
||||
final Diagram sys = systemFactory.createSystem(umlSource);
|
||||
final Diagram sys = systemFactory.createSystem(umlSource, skinParam);
|
||||
if (isOk(sys)) {
|
||||
result = sys;
|
||||
return sys;
|
||||
@ -151,16 +150,17 @@ public class PSystemBuilder {
|
||||
}
|
||||
}
|
||||
|
||||
private static List<PSystemFactory> getAllFactories(ISkinSimple skinParam) {
|
||||
final List<PSystemFactory> factories = new ArrayList<>();
|
||||
private static final List<PSystemFactory> factories = new ArrayList<>();
|
||||
|
||||
static {
|
||||
factories.add(new PSystemWelcomeFactory());
|
||||
factories.add(new PSystemColorsFactory());
|
||||
factories.add(new SequenceDiagramFactory(skinParam));
|
||||
factories.add(new ClassDiagramFactory(skinParam));
|
||||
factories.add(new ActivityDiagramFactory(skinParam));
|
||||
factories.add(new DescriptionDiagramFactory(skinParam));
|
||||
factories.add(new StateDiagramFactory(skinParam));
|
||||
factories.add(new ActivityDiagramFactory3(skinParam));
|
||||
factories.add(new SequenceDiagramFactory());
|
||||
factories.add(new ClassDiagramFactory());
|
||||
factories.add(new ActivityDiagramFactory());
|
||||
factories.add(new DescriptionDiagramFactory());
|
||||
factories.add(new StateDiagramFactory());
|
||||
factories.add(new ActivityDiagramFactory3());
|
||||
// factories.add(new CompositeDiagramFactory(skinParam));
|
||||
factories.add(new BpmDiagramFactory(DiagramType.BPM));
|
||||
// factories.add(new PostIdDiagramFactory());
|
||||
@ -176,7 +176,8 @@ public class PSystemBuilder {
|
||||
factories.add(new PSystemSaltFactory2(DiagramType.UML));
|
||||
factories.add(new PSystemDotFactory(DiagramType.DOT));
|
||||
factories.add(new PSystemDotFactory(DiagramType.UML));
|
||||
factories.add(new NwDiagramFactory());
|
||||
factories.add(new NwDiagramFactory(DiagramType.NW));
|
||||
factories.add(new NwDiagramFactory(DiagramType.UML));
|
||||
factories.add(new MindMapDiagramFactory());
|
||||
factories.add(new WBSDiagramFactory());
|
||||
factories.add(new PSystemDitaaFactory(DiagramType.DITAA));
|
||||
@ -188,8 +189,8 @@ public class PSystemBuilder {
|
||||
factories.add(new PSystemSudokuFactory());
|
||||
}
|
||||
factories.add(new PSystemDefinitionFactory());
|
||||
factories.add(new ListSpriteDiagramFactory(skinParam));
|
||||
factories.add(new StdlibDiagramFactory(skinParam));
|
||||
factories.add(new ListSpriteDiagramFactory());
|
||||
factories.add(new StdlibDiagramFactory());
|
||||
factories.add(new PSystemMathFactory(DiagramType.MATH));
|
||||
factories.add(new PSystemLatexFactory(DiagramType.LATEX));
|
||||
// factories.add(new PSystemStatsFactory());
|
||||
@ -208,6 +209,7 @@ public class PSystemBuilder {
|
||||
}
|
||||
factories.add(new GanttDiagramFactory(DiagramType.GANTT));
|
||||
factories.add(new GanttDiagramFactory(DiagramType.UML));
|
||||
GanttDiagramFactory.clearCache();
|
||||
factories.add(new FlowDiagramFactory());
|
||||
// factories.add(new PSystemTreeFactory(DiagramType.JUNGLE));
|
||||
// factories.add(new PSystemCuteFactory(DiagramType.CUTE));
|
||||
@ -219,7 +221,6 @@ public class PSystemBuilder {
|
||||
factories.add(new GitDiagramFactory());
|
||||
factories.add(new BoardDiagramFactory());
|
||||
factories.add(new YamlDiagramFactory());
|
||||
return factories;
|
||||
}
|
||||
|
||||
private boolean isOk(Diagram ps) {
|
||||
|
@ -34,15 +34,20 @@
|
||||
*/
|
||||
package net.sourceforge.plantuml;
|
||||
|
||||
import net.sourceforge.plantuml.core.ImageData;
|
||||
import net.sourceforge.plantuml.graphic.UDrawable;
|
||||
import net.sourceforge.plantuml.ugraphic.ImageBuilder;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
|
||||
import net.sourceforge.plantuml.core.ImageData;
|
||||
import net.sourceforge.plantuml.core.UmlSource;
|
||||
import net.sourceforge.plantuml.graphic.UDrawable;
|
||||
import net.sourceforge.plantuml.ugraphic.ImageBuilder;
|
||||
|
||||
// This class doesnt feel like a wonderful idea, just a stepping stone towards something
|
||||
public abstract class PlainDiagram extends AbstractPSystem {
|
||||
|
||||
public PlainDiagram(UmlSource source) {
|
||||
super(source);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImageBuilder createImageBuilder(FileFormatOption fileFormatOption) throws IOException {
|
||||
|
@ -34,14 +34,15 @@
|
||||
*/
|
||||
package net.sourceforge.plantuml;
|
||||
|
||||
import net.sourceforge.plantuml.graphic.GraphicPosition;
|
||||
import net.sourceforge.plantuml.graphic.UDrawable;
|
||||
import static net.sourceforge.plantuml.graphic.GraphicStrings.createBlackOnWhite;
|
||||
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static net.sourceforge.plantuml.graphic.GraphicStrings.createBlackOnWhite;
|
||||
import net.sourceforge.plantuml.core.UmlSource;
|
||||
import net.sourceforge.plantuml.graphic.GraphicPosition;
|
||||
import net.sourceforge.plantuml.graphic.UDrawable;
|
||||
|
||||
public abstract class PlainStringsDiagram extends PlainDiagram {
|
||||
|
||||
@ -50,6 +51,10 @@ public abstract class PlainStringsDiagram extends PlainDiagram {
|
||||
|
||||
protected final List<String> strings = new ArrayList<>();
|
||||
|
||||
public PlainStringsDiagram(UmlSource source) {
|
||||
super(source);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UDrawable getRootDrawable(FileFormatOption fileFormatOption) {
|
||||
return createBlackOnWhite(strings, image, imagePosition);
|
||||
|
@ -54,13 +54,9 @@ import java.util.concurrent.TimeUnit;
|
||||
|
||||
import javax.swing.UIManager;
|
||||
|
||||
import net.sourceforge.plantuml.activitydiagram.ActivityDiagramFactory;
|
||||
import net.sourceforge.plantuml.classdiagram.ClassDiagramFactory;
|
||||
import net.sourceforge.plantuml.code.NoPlantumlCompressionException;
|
||||
import net.sourceforge.plantuml.code.Transcoder;
|
||||
import net.sourceforge.plantuml.code.TranscoderUtil;
|
||||
import net.sourceforge.plantuml.command.PSystemCommandFactory;
|
||||
import net.sourceforge.plantuml.descdiagram.DescriptionDiagramFactory;
|
||||
import net.sourceforge.plantuml.ftp.FtpServer;
|
||||
import net.sourceforge.plantuml.picoweb.PicoWebServer;
|
||||
import net.sourceforge.plantuml.png.MetadataTag;
|
||||
@ -68,10 +64,8 @@ import net.sourceforge.plantuml.preproc.Stdlib;
|
||||
import net.sourceforge.plantuml.security.ImageIO;
|
||||
import net.sourceforge.plantuml.security.SFile;
|
||||
import net.sourceforge.plantuml.security.SecurityUtils;
|
||||
import net.sourceforge.plantuml.sequencediagram.SequenceDiagramFactory;
|
||||
import net.sourceforge.plantuml.sprite.SpriteGrayLevel;
|
||||
import net.sourceforge.plantuml.sprite.SpriteUtils;
|
||||
import net.sourceforge.plantuml.statediagram.StateDiagramFactory;
|
||||
import net.sourceforge.plantuml.stats.StatsUtils;
|
||||
import net.sourceforge.plantuml.swing.MainWindow2;
|
||||
import net.sourceforge.plantuml.syntax.LanguageDescriptor;
|
||||
@ -156,9 +150,7 @@ public class Run {
|
||||
}
|
||||
final ErrorStatus error = ErrorStatus.init();
|
||||
boolean forceQuit = false;
|
||||
if (option.isPattern()) {
|
||||
managePattern();
|
||||
} else if (OptionFlags.getInstance().isGui()) {
|
||||
if (OptionFlags.getInstance().isGui()) {
|
||||
try {
|
||||
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
|
||||
} catch (Exception e) {
|
||||
@ -359,25 +351,6 @@ public class Run {
|
||||
}
|
||||
}
|
||||
|
||||
private static void managePattern() {
|
||||
printPattern(new SequenceDiagramFactory(null));
|
||||
printPattern(new ClassDiagramFactory(null));
|
||||
printPattern(new ActivityDiagramFactory(null));
|
||||
printPattern(new DescriptionDiagramFactory(null));
|
||||
// printPattern(new ComponentDiagramFactory());
|
||||
printPattern(new StateDiagramFactory(null));
|
||||
// printPattern(new ObjectDiagramFactory(null));
|
||||
}
|
||||
|
||||
private static void printPattern(PSystemCommandFactory factory) {
|
||||
System.out.println();
|
||||
System.out.println(factory.getClass().getSimpleName().replaceAll("Factory", ""));
|
||||
final List<String> descriptions = factory.getDescription();
|
||||
for (String s : descriptions) {
|
||||
System.out.println(s);
|
||||
}
|
||||
}
|
||||
|
||||
private static void managePipe(Option option, ErrorStatus error) throws IOException {
|
||||
final String charset = option.getCharset();
|
||||
new Pipe(option, System.out, System.in, charset).managePipe(error);
|
||||
|
@ -35,6 +35,8 @@
|
||||
*/
|
||||
package net.sourceforge.plantuml;
|
||||
|
||||
import static net.sourceforge.plantuml.ugraphic.ImageBuilder.plainImageBuilder;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.io.StringReader;
|
||||
@ -50,8 +52,6 @@ import net.sourceforge.plantuml.preproc.Defines;
|
||||
import net.sourceforge.plantuml.security.SFile;
|
||||
import net.sourceforge.plantuml.svek.TextBlockBackcolored;
|
||||
|
||||
import static net.sourceforge.plantuml.ugraphic.ImageBuilder.plainImageBuilder;
|
||||
|
||||
public class SourceStringReader {
|
||||
|
||||
final private List<BlockUml> blocks;
|
||||
|
@ -420,13 +420,8 @@ public class StringUtils {
|
||||
|
||||
public static List<String> splitComma(String s) {
|
||||
s = trin(s);
|
||||
// if
|
||||
// (s.matches("([\\p{L}0-9_.]+|[%g][^%g]+[%g])(\\s*,\\s*([\\p{L}0-9_.]+|[%g][^%g]+[%g]))*")
|
||||
// == false) {
|
||||
// throw new IllegalArgumentException();
|
||||
// }
|
||||
final List<String> result = new ArrayList<>();
|
||||
final Pattern2 p = MyPattern.cmpile("([\\p{L}0-9_.]+|[%g][^%g]+[%g])");
|
||||
final Pattern2 p = MyPattern.cmpile("([%pLN_.]+|[%g][^%g]+[%g])");
|
||||
final Matcher2 m = p.matcher(s);
|
||||
while (m.find()) {
|
||||
result.add(eventuallyRemoveStartingAndEndingDoubleQuote(m.group(0)));
|
||||
|
@ -41,6 +41,7 @@ import net.sourceforge.plantuml.anim.Animation;
|
||||
import net.sourceforge.plantuml.anim.AnimationDecoder;
|
||||
import net.sourceforge.plantuml.command.CommandExecutionResult;
|
||||
import net.sourceforge.plantuml.core.Diagram;
|
||||
import net.sourceforge.plantuml.core.UmlSource;
|
||||
import net.sourceforge.plantuml.cucadiagram.Display;
|
||||
import net.sourceforge.plantuml.cucadiagram.DisplayPositionned;
|
||||
import net.sourceforge.plantuml.cucadiagram.DisplaySection;
|
||||
@ -81,7 +82,8 @@ public abstract class TitledDiagram extends AbstractPSystem implements Diagram,
|
||||
return pragma;
|
||||
}
|
||||
|
||||
public TitledDiagram(UmlDiagramType type) {
|
||||
public TitledDiagram(UmlSource source, UmlDiagramType type) {
|
||||
super(source);
|
||||
this.type = type;
|
||||
this.skinParam = SkinParam.create(type);
|
||||
}
|
||||
@ -90,8 +92,8 @@ public abstract class TitledDiagram extends AbstractPSystem implements Diagram,
|
||||
return skinParam.getCurrentStyleBuilder();
|
||||
}
|
||||
|
||||
public TitledDiagram(UmlDiagramType type, ISkinSimple orig) {
|
||||
this(type);
|
||||
public TitledDiagram(UmlSource source, UmlDiagramType type, ISkinSimple orig) {
|
||||
this(source, type);
|
||||
if (orig != null) {
|
||||
this.skinParam.copyAllFrom(orig);
|
||||
}
|
||||
|
@ -35,6 +35,8 @@
|
||||
*/
|
||||
package net.sourceforge.plantuml;
|
||||
|
||||
import static net.sourceforge.plantuml.ugraphic.ImageBuilder.plainImageBuilder;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.geom.AffineTransform;
|
||||
import java.awt.geom.Dimension2D;
|
||||
@ -79,8 +81,6 @@ import net.sourceforge.plantuml.ugraphic.UImage;
|
||||
import net.sourceforge.plantuml.ugraphic.UTranslate;
|
||||
import net.sourceforge.plantuml.version.Version;
|
||||
|
||||
import static net.sourceforge.plantuml.ugraphic.ImageBuilder.plainImageBuilder;
|
||||
|
||||
public abstract class UmlDiagram extends TitledDiagram implements Diagram, Annotated, WithSprite {
|
||||
|
||||
private boolean rotation;
|
||||
@ -88,12 +88,12 @@ public abstract class UmlDiagram extends TitledDiagram implements Diagram, Annot
|
||||
|
||||
private int minwidth = Integer.MAX_VALUE;
|
||||
|
||||
public UmlDiagram(UmlDiagramType type) {
|
||||
super(type);
|
||||
public UmlDiagram(UmlSource source, UmlDiagramType type) {
|
||||
super(source, type);
|
||||
}
|
||||
|
||||
public UmlDiagram(UmlDiagramType type, ISkinSimple orig) {
|
||||
super(type, orig);
|
||||
public UmlDiagram(UmlSource source, UmlDiagramType type, ISkinSimple orig) {
|
||||
super(source, type, orig);
|
||||
}
|
||||
|
||||
final public int getMinwidth() {
|
||||
|
@ -62,12 +62,12 @@ public class UrlBuilder {
|
||||
+ "[%s]*\\]\\]";
|
||||
|
||||
private static final String S_LINK_TOOLTIP_NOLABEL = "\\[\\[[%s]*" + //
|
||||
"([^\\s%g{}]+?)" + // Link
|
||||
"([^\\s%g{}\\[\\]]+?)" + // Link
|
||||
"[%s]*\\{(.+)\\}" + // Tooltip
|
||||
"[%s]*\\]\\]";
|
||||
|
||||
private static final String S_LINK_WITH_OPTIONAL_TOOLTIP_WITH_OPTIONAL_LABEL = "\\[\\[[%s]*" + //
|
||||
"([^%s%g]+?)" + // Link
|
||||
"([^%s%g\\[\\]]+?)" + // Link
|
||||
"(?:[%s]*\\{([^{}]*)\\})?" + // Optional tooltip
|
||||
"(?:[%s]([^%s\\{\\}\\[\\]][^\\[\\]]*))?" + // Optional label
|
||||
"[%s]*\\]\\]";
|
||||
|
@ -55,6 +55,7 @@ import net.sourceforge.plantuml.FileFormatOption;
|
||||
import net.sourceforge.plantuml.api.ImageDataSimple;
|
||||
import net.sourceforge.plantuml.core.DiagramDescription;
|
||||
import net.sourceforge.plantuml.core.ImageData;
|
||||
import net.sourceforge.plantuml.core.UmlSource;
|
||||
|
||||
public class PSystemXearth extends AbstractPSystem {
|
||||
|
||||
@ -70,7 +71,8 @@ public class PSystemXearth extends AbstractPSystem {
|
||||
"terminatorDiscontinuity", "gridDivision", "gridPixelDivision", "bigStars");
|
||||
final private Collection<String> booleans = Arrays.asList("shadeP", "gridP", "starsP");
|
||||
|
||||
public PSystemXearth(int width, int height, Map<String, String> config, List<Marker> markers) {
|
||||
public PSystemXearth(UmlSource source, int width, int height, Map<String, String> config, List<Marker> markers) {
|
||||
super(source);
|
||||
this.width = width;
|
||||
this.height = height;
|
||||
this.config = config;
|
||||
|
@ -45,6 +45,7 @@ import net.sourceforge.plantuml.command.PSystemBasicFactory;
|
||||
import net.sourceforge.plantuml.command.regex.Matcher2;
|
||||
import net.sourceforge.plantuml.command.regex.MyPattern;
|
||||
import net.sourceforge.plantuml.command.regex.Pattern2;
|
||||
import net.sourceforge.plantuml.core.UmlSource;
|
||||
|
||||
public class PSystemXearthFactory extends PSystemBasicFactory<PSystemXearth> {
|
||||
|
||||
@ -53,7 +54,8 @@ public class PSystemXearthFactory extends PSystemBasicFactory<PSystemXearth> {
|
||||
private int width;
|
||||
private int height;
|
||||
|
||||
public PSystemXearth init(String startLine) {
|
||||
@Override
|
||||
public PSystemXearth initDiagram(UmlSource source, String startLine) {
|
||||
this.width = 512;
|
||||
this.height = 512;
|
||||
this.config.clear();
|
||||
@ -72,10 +74,10 @@ public class PSystemXearthFactory extends PSystemBasicFactory<PSystemXearth> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public PSystemXearth executeLine(PSystemXearth system, String line) {
|
||||
public PSystemXearth executeLine(UmlSource source, PSystemXearth system, String line) {
|
||||
if (system == null && line.startsWith("xearth")) {
|
||||
extractDimension(line);
|
||||
system = new PSystemXearth(width, height, config, markers);
|
||||
system = new PSystemXearth(source, width, height, config, markers);
|
||||
return system;
|
||||
}
|
||||
if (system == null) {
|
||||
|
@ -43,6 +43,7 @@ import net.sourceforge.plantuml.Direction;
|
||||
import net.sourceforge.plantuml.ISkinSimple;
|
||||
import net.sourceforge.plantuml.UmlDiagramType;
|
||||
import net.sourceforge.plantuml.core.DiagramDescription;
|
||||
import net.sourceforge.plantuml.core.UmlSource;
|
||||
import net.sourceforge.plantuml.cucadiagram.Code;
|
||||
import net.sourceforge.plantuml.cucadiagram.CucaDiagram;
|
||||
import net.sourceforge.plantuml.cucadiagram.Display;
|
||||
@ -61,8 +62,8 @@ public class ActivityDiagram extends CucaDiagram {
|
||||
private IEntity lastEntityBrancheConsulted;
|
||||
private ConditionalContext currentContext;
|
||||
|
||||
public ActivityDiagram(ISkinSimple skinParam) {
|
||||
super(UmlDiagramType.ACTIVITY, skinParam);
|
||||
public ActivityDiagram(UmlSource source, ISkinSimple skinParam) {
|
||||
super(source, UmlDiagramType.ACTIVITY, skinParam);
|
||||
setNamespaceSeparator(null);
|
||||
}
|
||||
|
||||
|
@ -53,19 +53,13 @@ import net.sourceforge.plantuml.command.CommandRankDir;
|
||||
import net.sourceforge.plantuml.command.PSystemCommandFactory;
|
||||
import net.sourceforge.plantuml.command.note.CommandFactoryNoteActivity;
|
||||
import net.sourceforge.plantuml.command.note.CommandFactoryNoteOnLink;
|
||||
import net.sourceforge.plantuml.core.UmlSource;
|
||||
|
||||
public class ActivityDiagramFactory extends PSystemCommandFactory {
|
||||
|
||||
private final ISkinSimple skinParam;
|
||||
|
||||
public ActivityDiagramFactory(ISkinSimple skinParam) {
|
||||
this.skinParam = skinParam;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public ActivityDiagram createEmptyDiagram() {
|
||||
return new ActivityDiagram(skinParam);
|
||||
public ActivityDiagram createEmptyDiagram(UmlSource source, ISkinSimple skinParam) {
|
||||
return new ActivityDiagram(source, skinParam);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -66,9 +66,9 @@ public class CommandIf extends SingleLineCommand2<ActivityDiagram> {
|
||||
new RegexOptional(//
|
||||
new RegexOr("FIRST", //
|
||||
new RegexLeaf("STAR", "(\\(\\*(top)?\\))"), //
|
||||
new RegexLeaf("CODE", "([\\p{L}0-9_.]+)"), //
|
||||
new RegexLeaf("BAR", "(?:==+)[%s]*([\\p{L}0-9_.]+)[%s]*(?:==+)"), //
|
||||
new RegexLeaf("QUOTED", "[%g]([^%g]+)[%g](?:[%s]+as[%s]+([\\p{L}0-9_.]+))?"))), //
|
||||
new RegexLeaf("CODE", "([%pLN_.]+)"), //
|
||||
new RegexLeaf("BAR", "(?:==+)[%s]*([%pLN_.]+)[%s]*(?:==+)"), //
|
||||
new RegexLeaf("QUOTED", "[%g]([^%g]+)[%g](?:[%s]+as[%s]+([%pLN_.]+))?"))), //
|
||||
RegexLeaf.spaceZeroOrMore(), //
|
||||
//new RegexOptional(new RegexLeaf("ARROW", "([=-]+(?:(left|right|up|down|le?|ri?|up?|do?)(?=[-=.]))?[=-]*\\>)")), //
|
||||
new RegexOptional(new RegexConcat( //
|
||||
@ -83,7 +83,7 @@ public class CommandIf extends SingleLineCommand2<ActivityDiagram> {
|
||||
new RegexOptional(new RegexLeaf("BRACKET", "\\[([^\\]*]+[^\\]]*)\\]")), //
|
||||
RegexLeaf.spaceZeroOrMore(), //
|
||||
new RegexOr(//
|
||||
new RegexLeaf("IF1", "if[%s]*[%g]([^%g]*)[%g][%s]*(?:as[%s]+([\\p{L}0-9_.]+)[%s]+)?"), //
|
||||
new RegexLeaf("IF1", "if[%s]*[%g]([^%g]*)[%g][%s]*(?:as[%s]+([%pLN_.]+)[%s]+)?"), //
|
||||
new RegexLeaf("IF2", "if[%s]+(.+?)")), //
|
||||
RegexLeaf.spaceZeroOrMore(), //
|
||||
new RegexOptional(new RegexLeaf("then")), //
|
||||
|
@ -80,9 +80,9 @@ public class CommandLinkActivity extends SingleLineCommand2<ActivityDiagram> {
|
||||
new RegexOptional(//
|
||||
new RegexOr("FIRST", //
|
||||
new RegexLeaf("STAR", "(\\(\\*(top)?\\))"), //
|
||||
new RegexLeaf("CODE", "([\\p{L}0-9][\\p{L}0-9_.]*)"), //
|
||||
new RegexLeaf("BAR", "(?:==+)[%s]*([\\p{L}0-9_.]+)[%s]*(?:==+)"), //
|
||||
new RegexLeaf("QUOTED", "[%g]([^%g]+)[%g](?:[%s]+as[%s]+([\\p{L}0-9_.]+))?"))), //
|
||||
new RegexLeaf("CODE", "([%pLN][%pLN_.]*)"), //
|
||||
new RegexLeaf("BAR", "(?:==+)[%s]*([%pLN_.]+)[%s]*(?:==+)"), //
|
||||
new RegexLeaf("QUOTED", "[%g]([^%g]+)[%g](?:[%s]+as[%s]+([%pLN_.]+))?"))), //
|
||||
RegexLeaf.spaceZeroOrMore(), //
|
||||
new RegexLeaf("STEREOTYPE", "(\\<\\<.*\\>\\>)?"), //
|
||||
RegexLeaf.spaceZeroOrMore(), //
|
||||
@ -103,9 +103,9 @@ public class CommandLinkActivity extends SingleLineCommand2<ActivityDiagram> {
|
||||
new RegexOr("FIRST2", //
|
||||
new RegexLeaf("STAR2", "(\\(\\*(top|\\d+)?\\))"), //
|
||||
new RegexLeaf("OPENBRACKET2", "(\\{)"), //
|
||||
new RegexLeaf("CODE2", "([\\p{L}0-9][\\p{L}0-9_.]*)"), //
|
||||
new RegexLeaf("BAR2", "(?:==+)[%s]*([\\p{L}0-9_.]+)[%s]*(?:==+)"), //
|
||||
new RegexLeaf("QUOTED2", "[%g]([^%g]+)[%g](?:[%s]+as[%s]+([\\p{L}0-9][\\p{L}0-9_.]*))?"), //
|
||||
new RegexLeaf("CODE2", "([%pLN][%pLN_.]*)"), //
|
||||
new RegexLeaf("BAR2", "(?:==+)[%s]*([%pLN_.]+)[%s]*(?:==+)"), //
|
||||
new RegexLeaf("QUOTED2", "[%g]([^%g]+)[%g](?:[%s]+as[%s]+([%pLN][%pLN_.]*))?"), //
|
||||
new RegexLeaf("QUOTED_INVISIBLE2", "(\\w.*?)")), //
|
||||
RegexLeaf.spaceZeroOrMore(), //
|
||||
new RegexLeaf("STEREOTYPE2", "(\\<\\<.*\\>\\>)?"), //
|
||||
|
@ -80,7 +80,7 @@ public class CommandLinkLongActivity extends CommandMultilines2<ActivityDiagram>
|
||||
|
||||
@Override
|
||||
public String getPatternEnd() {
|
||||
return "(?i)^[%s]*([^%g]*)[%g](?:[%s]+as[%s]+([\\p{L}0-9][\\p{L}0-9_.]*))?[%s]*(\\<\\<.*\\>\\>)?[%s]*(?:in[%s]+([%g][^%g]+[%g]|\\S+))?[%s]*(#\\w+)?$";
|
||||
return "^[%s]*([^%g]*)[%g](?:[%s]+as[%s]+([%pLN][%pLN_.]*))?[%s]*(\\<\\<.*\\>\\>)?[%s]*(?:in[%s]+([%g][^%g]+[%g]|\\S+))?[%s]*(#\\w+)?$";
|
||||
}
|
||||
|
||||
static IRegex getRegexConcat() {
|
||||
@ -88,9 +88,9 @@ public class CommandLinkLongActivity extends CommandMultilines2<ActivityDiagram>
|
||||
new RegexOptional(//
|
||||
new RegexOr("FIRST", //
|
||||
new RegexLeaf("STAR", "(\\(\\*(top)?\\))"), //
|
||||
new RegexLeaf("CODE", "([\\p{L}0-9][\\p{L}0-9_.]*)"), //
|
||||
new RegexLeaf("BAR", "(?:==+)[%s]*([\\p{L}0-9_.]+)[%s]*(?:==+)"), //
|
||||
new RegexLeaf("QUOTED", "[%g]([^%g]+)[%g](?:[%s]+as[%s]+([\\p{L}0-9_.]+))?"))), //
|
||||
new RegexLeaf("CODE", "([%pLN][%pLN_.]*)"), //
|
||||
new RegexLeaf("BAR", "(?:==+)[%s]*([%pLN_.]+)[%s]*(?:==+)"), //
|
||||
new RegexLeaf("QUOTED", "[%g]([^%g]+)[%g](?:[%s]+as[%s]+([%pLN_.]+))?"))), //
|
||||
RegexLeaf.spaceZeroOrMore(), //
|
||||
new RegexLeaf("STEREOTYPE", "(\\<\\<.*\\>\\>)?"), //
|
||||
RegexLeaf.spaceZeroOrMore(), //
|
||||
|
@ -49,6 +49,7 @@ import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlanes;
|
||||
import net.sourceforge.plantuml.command.CommandExecutionResult;
|
||||
import net.sourceforge.plantuml.core.DiagramDescription;
|
||||
import net.sourceforge.plantuml.core.ImageData;
|
||||
import net.sourceforge.plantuml.core.UmlSource;
|
||||
import net.sourceforge.plantuml.cucadiagram.Display;
|
||||
import net.sourceforge.plantuml.cucadiagram.Stereotype;
|
||||
import net.sourceforge.plantuml.graphic.Rainbow;
|
||||
@ -73,8 +74,8 @@ public class ActivityDiagram3 extends UmlDiagram {
|
||||
|
||||
private final Swimlanes swinlanes = new Swimlanes(getSkinParam(), getPragma());
|
||||
|
||||
public ActivityDiagram3(ISkinSimple skinParam) {
|
||||
super(UmlDiagramType.ACTIVITY, skinParam);
|
||||
public ActivityDiagram3(UmlSource source, ISkinSimple skinParam) {
|
||||
super(source, UmlDiagramType.ACTIVITY, skinParam);
|
||||
}
|
||||
|
||||
private void manageSwimlaneStrategy() {
|
||||
|
@ -87,15 +87,10 @@ import net.sourceforge.plantuml.command.Command;
|
||||
import net.sourceforge.plantuml.command.CommandDecoratorMultine;
|
||||
import net.sourceforge.plantuml.command.CommandFootboxIgnored;
|
||||
import net.sourceforge.plantuml.command.PSystemCommandFactory;
|
||||
import net.sourceforge.plantuml.core.UmlSource;
|
||||
|
||||
public class ActivityDiagramFactory3 extends PSystemCommandFactory {
|
||||
|
||||
private final ISkinSimple skinParam;
|
||||
|
||||
public ActivityDiagramFactory3(ISkinSimple skinParam) {
|
||||
this.skinParam = skinParam;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<Command> createCommands() {
|
||||
|
||||
@ -163,8 +158,8 @@ public class ActivityDiagramFactory3 extends PSystemCommandFactory {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ActivityDiagram3 createEmptyDiagram() {
|
||||
return new ActivityDiagram3(skinParam);
|
||||
public ActivityDiagram3 createEmptyDiagram(UmlSource source, ISkinSimple skinParam) {
|
||||
return new ActivityDiagram3(source, skinParam);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ public class CommandGoto extends SingleLineCommand2<ActivityDiagram3> {
|
||||
return RegexConcat.build(CommandGoto.class.getName(), RegexLeaf.start(), //
|
||||
new RegexLeaf("goto"), //
|
||||
RegexLeaf.spaceOneOrMore(), //
|
||||
new RegexLeaf("NAME", "([\\p{L}0-9_.]+)"), //
|
||||
new RegexLeaf("NAME", "([%pLN_.]+)"), //
|
||||
new RegexLeaf(";?"), //
|
||||
RegexLeaf.end());
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ public class CommandLabel extends SingleLineCommand2<ActivityDiagram3> {
|
||||
return RegexConcat.build(CommandLabel.class.getName(), RegexLeaf.start(), //
|
||||
new RegexLeaf("label"), //
|
||||
RegexLeaf.spaceOneOrMore(), //
|
||||
new RegexLeaf("NAME", "([\\p{L}0-9_.]+)"), //
|
||||
new RegexLeaf("NAME", "([%pLN_.]+)"), //
|
||||
new RegexLeaf(";?"), //
|
||||
RegexLeaf.end());
|
||||
}
|
||||
|
@ -64,7 +64,7 @@ public class CommandNoteLong3 extends CommandMultilines2<ActivityDiagram3> {
|
||||
|
||||
@Override
|
||||
public String getPatternEnd() {
|
||||
return "(?i)^end[%s]?note$";
|
||||
return "^end[%s]?note$";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -88,7 +88,9 @@ public class CommandRepeatWhile3Multilines extends CommandMultilines3<ActivityDi
|
||||
// System.err.println("linesLast=" + lineLast);
|
||||
|
||||
//
|
||||
// final HtmlColor color = diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(line0.get("COLOR", 0));
|
||||
// final HtmlColor color =
|
||||
// diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(line0.get("COLOR",
|
||||
// 0));
|
||||
|
||||
final String test = line0.get("TEST1", 0);
|
||||
Display testDisplay = Display.getWithNewlines(test);
|
||||
@ -105,8 +107,8 @@ public class CommandRepeatWhile3Multilines extends CommandMultilines3<ActivityDi
|
||||
final Rainbow linkColor = Rainbow.none(); // diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR",
|
||||
// 0));
|
||||
final Display linkLabel = Display.NULL; // Display.getWithNewlines("arg.get(\"LABEL\", 0)");
|
||||
final List<Display> splitted = testDisplay.splitMultiline(MyPattern.cmpile("\\)[%s]*(is|equals?)[%s]*\\(",
|
||||
Pattern.CASE_INSENSITIVE));
|
||||
final List<Display> splitted = testDisplay
|
||||
.splitMultiline(MyPattern.cmpile("\\)[%s]*(is|equals?)[%s]*\\("));
|
||||
if (splitted.size() == 2) {
|
||||
testDisplay = splitted.get(0);
|
||||
yes = splitted.get(1);
|
||||
|
@ -44,6 +44,9 @@ public class FtileUtils {
|
||||
}
|
||||
|
||||
public static Ftile addConnection(Ftile ftile, Collection<Connection> connections) {
|
||||
if (connections.size() == 0) {
|
||||
return ftile;
|
||||
}
|
||||
return new FtileWithConnection(ftile, connections);
|
||||
}
|
||||
|
||||
|
@ -51,7 +51,7 @@ class FtileWithConnection extends FtileDecorate {
|
||||
|
||||
FtileWithConnection(Ftile ftile, Collection<Connection> connections) {
|
||||
super(ftile);
|
||||
if (connections == null || connections.size() == 0) {
|
||||
if (Objects.requireNonNull(connections).size() == 0) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
this.connections.addAll(connections);
|
||||
|
@ -108,7 +108,7 @@ public class FtileFactoryDelegatorSwitch extends FtileFactoryDelegator {
|
||||
}
|
||||
final FtileSwitchWithManyLinks result = new FtileSwitchWithManyLinks(ftiles, branches, swimlane, diamond1,
|
||||
diamond2, getStringBounder(), arrowColor);
|
||||
return result.addLinks();
|
||||
return result.addLinks(getStringBounder());
|
||||
|
||||
}
|
||||
|
||||
|
@ -208,7 +208,9 @@ public class ParallelBuilderFork extends AbstractParallelFtilesBuilder {
|
||||
def = Rainbow.build(skinParam());
|
||||
}
|
||||
final Rainbow rainbow = tmp.getOutLinkRendering().getRainbow(def);
|
||||
conns.add(new ConnectionOut(tmp, out, x, rainbow, getJustBeforeBar2(middle, getStringBounder())));
|
||||
if (tmp.calculateDimension(getStringBounder()).hasPointOut()) {
|
||||
conns.add(new ConnectionOut(tmp, out, x, rainbow, getJustBeforeBar2(middle, getStringBounder())));
|
||||
}
|
||||
x += dim.getWidth();
|
||||
}
|
||||
result = FtileUtils.addConnection(result, conns);
|
||||
|
@ -106,7 +106,7 @@ public class ParallelBuilderMerge extends AbstractParallelFtilesBuilder {
|
||||
result = new FtileAssemblySimple(result, out);
|
||||
final List<Connection> conns = new ArrayList<>();
|
||||
final UTranslate diamondTranslate = result.getTranslateFor(out, getStringBounder());
|
||||
int i = 0;
|
||||
|
||||
double x = 0;
|
||||
for (Ftile tmp : list99) {
|
||||
final Dimension2D dim = tmp.calculateDimension(getStringBounder());
|
||||
@ -119,9 +119,11 @@ public class ParallelBuilderMerge extends AbstractParallelFtilesBuilder {
|
||||
def = Rainbow.build(skinParam());
|
||||
}
|
||||
final Rainbow rainbow = tmp.getOutLinkRendering().getRainbow(def);
|
||||
conns.add(new ConnectionHorizontalThenVertical(tmp, out, rainbow, translate0, diamondTranslate, i));
|
||||
if (tmp.calculateDimension(getStringBounder()).hasPointOut()) {
|
||||
conns.add(new ConnectionHorizontalThenVertical(tmp, out, rainbow, translate0, diamondTranslate));
|
||||
}
|
||||
x += dim.getWidth();
|
||||
i++;
|
||||
|
||||
}
|
||||
return FtileUtils.addConnection(result, conns);
|
||||
}
|
||||
@ -131,31 +133,32 @@ public class ParallelBuilderMerge extends AbstractParallelFtilesBuilder {
|
||||
private final Rainbow arrowColor;
|
||||
private final UTranslate diamondTranslate;
|
||||
private final UTranslate translate0;
|
||||
private final int counter;
|
||||
|
||||
public ConnectionHorizontalThenVertical(Ftile tile, Ftile diamond, Rainbow arrowColor, UTranslate translate0,
|
||||
UTranslate diamondTranslate, int counter) {
|
||||
UTranslate diamondTranslate) {
|
||||
super(tile, diamond);
|
||||
this.arrowColor = arrowColor;
|
||||
this.diamondTranslate = diamondTranslate;
|
||||
this.translate0 = translate0;
|
||||
this.counter = counter;
|
||||
}
|
||||
|
||||
public void drawU(UGraphic ug) {
|
||||
final StringBounder stringBounder = ug.getStringBounder();
|
||||
final Point2D p1 = getP1(stringBounder);
|
||||
final Point2D p2 = getP2(stringBounder);
|
||||
final Point2D p2 = getP2(stringBounder, p1.getX());
|
||||
final double x1 = p1.getX();
|
||||
final double y1 = p1.getY();
|
||||
final double x2 = p2.getX();
|
||||
final double y2 = p2.getY();
|
||||
|
||||
UPolygon endDecoration = null;
|
||||
if (counter == 0) {
|
||||
final UTranslate arrival = arrivalOnDiamond(stringBounder, p1.getX());
|
||||
final UPolygon endDecoration;
|
||||
if (arrival.getDx() < 0) {
|
||||
endDecoration = Arrows.asToRight();
|
||||
} else if (counter == 1) {
|
||||
} else if (arrival.getDx() > 0) {
|
||||
endDecoration = Arrows.asToLeft();
|
||||
} else {
|
||||
endDecoration = Arrows.asToDown();
|
||||
}
|
||||
final Snake snake = Snake.create(arrowColor, endDecoration);
|
||||
snake.addPoint(x1, y1);
|
||||
@ -169,17 +172,30 @@ public class ParallelBuilderMerge extends AbstractParallelFtilesBuilder {
|
||||
return translate0.getTranslated(getFtile1().calculateDimension(stringBounder).getPointOut());
|
||||
}
|
||||
|
||||
private Point2D getP2(final StringBounder stringBounder) {
|
||||
final Point2D result = diamondTranslate
|
||||
.getTranslated(getFtile2().calculateDimension(stringBounder).getPointOut());
|
||||
private Point2D getP2(StringBounder stringBounder, double startX) {
|
||||
final UTranslate arrival = arrivalOnDiamond(stringBounder, startX);
|
||||
return arrival.getTranslated(getDiamondOut(stringBounder));
|
||||
}
|
||||
|
||||
public Point2D getDiamondOut(StringBounder stringBounder) {
|
||||
return diamondTranslate.getTranslated(getFtile2().calculateDimension(stringBounder).getPointOut());
|
||||
}
|
||||
|
||||
public UTranslate arrivalOnDiamond(StringBounder stringBounder, double startX) {
|
||||
final Point2D result = getDiamondOut(stringBounder);
|
||||
final Dimension2D dim = getFtile2().calculateDimension(stringBounder);
|
||||
UTranslate arrival = new UTranslate();
|
||||
if (counter == 0) {
|
||||
final double a = result.getX() - dim.getWidth() / 2;
|
||||
final double b = result.getX() + dim.getWidth() / 2;
|
||||
|
||||
final UTranslate arrival;
|
||||
if (startX < a) {
|
||||
arrival = new UTranslate(-dim.getWidth() / 2, -dim.getHeight() / 2);
|
||||
} else if (counter == 1) {
|
||||
} else if (startX > b) {
|
||||
arrival = new UTranslate(dim.getWidth() / 2, -dim.getHeight() / 2);
|
||||
} else {
|
||||
arrival = new UTranslate(0, -dim.getHeight());
|
||||
}
|
||||
return arrival.getTranslated(result);
|
||||
return arrival;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -195,7 +195,9 @@ public class ParallelBuilderSplit extends AbstractParallelFtilesBuilder {
|
||||
rainbow = outLinkRendering.getRainbow(Rainbow.build(skinParam()));
|
||||
}
|
||||
|
||||
conns.add(new ConnectionOut(translate0, tmp, out, x, rainbow, getHeightOfMiddle(inner)));
|
||||
if (tmp.calculateDimension(getStringBounder()).hasPointOut()) {
|
||||
conns.add(new ConnectionOut(translate0, tmp, out, x, rainbow, getHeightOfMiddle(inner)));
|
||||
}
|
||||
x += dim.getWidth();
|
||||
}
|
||||
if (last < geom.getLeft()) {
|
||||
|
@ -191,8 +191,8 @@ public class FtileSwitchWithManyLinks extends FtileSwitchWithDiamonds {
|
||||
final double x2 = p2.getX();
|
||||
final double y2 = p2.getY();
|
||||
|
||||
final Snake snake = Snake.create(null, arrowColor, Arrows.asToDown())
|
||||
.withLabel(getLabelPositive(branch), VerticalAlignment.BOTTOM);
|
||||
final Snake snake = Snake.create(null, arrowColor, Arrows.asToDown()).withLabel(getLabelPositive(branch),
|
||||
VerticalAlignment.BOTTOM);
|
||||
if (x2 < p1d.getX() - margin || x2 > p1b.getX() + margin) {
|
||||
snake.addPoint(x2, p1d.getY());
|
||||
snake.addPoint(x2, y2);
|
||||
@ -274,15 +274,18 @@ public class FtileSwitchWithManyLinks extends FtileSwitchWithDiamonds {
|
||||
return max + 10;
|
||||
}
|
||||
|
||||
public Ftile addLinks() {
|
||||
public Ftile addLinks(StringBounder stringBounder) {
|
||||
final List<Connection> conns = new ArrayList<>();
|
||||
conns.add(new ConnectionHorizontalThenVertical(tiles.get(0), branches.get(0)));
|
||||
conns.add(new ConnectionHorizontalThenVertical(tiles.get(tiles.size() - 1), branches.get(tiles.size() - 1)));
|
||||
conns.add(new ConnectionVerticalThenHorizontal(tiles.get(0)));
|
||||
conns.add(new ConnectionVerticalThenHorizontal(tiles.get(tiles.size() - 1)));
|
||||
for (int i = 1; i < tiles.size() - 1; i++) {
|
||||
conns.add(new ConnectionVerticalTop(tiles.get(i), branches.get(i)));
|
||||
conns.add(new ConnectionVerticalBottom(tiles.get(i)));
|
||||
final Ftile tile = tiles.get(i);
|
||||
conns.add(new ConnectionVerticalTop(tile, branches.get(i)));
|
||||
if (tile.calculateDimension(stringBounder).hasPointOut()) {
|
||||
conns.add(new ConnectionVerticalBottom(tile));
|
||||
}
|
||||
}
|
||||
|
||||
return FtileUtils.addConnection(this, conns);
|
||||
|
@ -35,13 +35,14 @@
|
||||
*/
|
||||
package net.sourceforge.plantuml.api;
|
||||
|
||||
import net.sourceforge.plantuml.ISkinSimple;
|
||||
import net.sourceforge.plantuml.core.Diagram;
|
||||
import net.sourceforge.plantuml.core.DiagramType;
|
||||
import net.sourceforge.plantuml.core.UmlSource;
|
||||
|
||||
public interface PSystemFactory {
|
||||
|
||||
Diagram createSystem(UmlSource source);
|
||||
Diagram createSystem(UmlSource source, ISkinSimple skinParam);
|
||||
|
||||
DiagramType getDiagramType();
|
||||
|
||||
|
@ -3,25 +3,25 @@
|
||||
|
||||
Original Author: Andreas Gadermaier <up.gadermaier@gmail.com>
|
||||
*/
|
||||
package ext.plantuml.com.at.gadermaier.argon2;
|
||||
package net.sourceforge.plantuml.argon2;
|
||||
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.Defaults.LANES_DEF;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.Defaults.LOG_M_COST_DEF;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.Defaults.OUTLEN_DEF;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.Defaults.TYPE_DEF;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.Defaults.T_COST_DEF;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.Defaults.VERSION_DEF;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.Defaults.LANES_DEF;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.Defaults.LOG_M_COST_DEF;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.Defaults.OUTLEN_DEF;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.Defaults.TYPE_DEF;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.Defaults.T_COST_DEF;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.Defaults.VERSION_DEF;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.CharBuffer;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.Arrays;
|
||||
|
||||
import ext.plantuml.com.at.gadermaier.argon2.algorithm.FillMemory;
|
||||
import ext.plantuml.com.at.gadermaier.argon2.algorithm.Finalize;
|
||||
import ext.plantuml.com.at.gadermaier.argon2.algorithm.Initialize;
|
||||
import ext.plantuml.com.at.gadermaier.argon2.model.Argon2Type;
|
||||
import ext.plantuml.com.at.gadermaier.argon2.model.Instance;
|
||||
import net.sourceforge.plantuml.argon2.algorithm.FillMemory;
|
||||
import net.sourceforge.plantuml.argon2.algorithm.Finalize;
|
||||
import net.sourceforge.plantuml.argon2.algorithm.Initialize;
|
||||
import net.sourceforge.plantuml.argon2.model.Argon2Type;
|
||||
import net.sourceforge.plantuml.argon2.model.Instance;
|
||||
|
||||
public class Argon2 {
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
Original Author: Andreas Gadermaier <up.gadermaier@gmail.com>
|
||||
*/
|
||||
package ext.plantuml.com.at.gadermaier.argon2;
|
||||
package net.sourceforge.plantuml.argon2;
|
||||
|
||||
public class Argon2Factory {
|
||||
public static Argon2 create(){
|
@ -3,9 +3,9 @@
|
||||
|
||||
Original Author: Andreas Gadermaier <up.gadermaier@gmail.com>
|
||||
*/
|
||||
package ext.plantuml.com.at.gadermaier.argon2;
|
||||
package net.sourceforge.plantuml.argon2;
|
||||
|
||||
import ext.plantuml.com.at.gadermaier.argon2.model.Argon2Type;
|
||||
import net.sourceforge.plantuml.argon2.model.Argon2Type;
|
||||
|
||||
public class Constants {
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
Original Author: Andreas Gadermaier <up.gadermaier@gmail.com>
|
||||
*/
|
||||
package ext.plantuml.com.at.gadermaier.argon2;
|
||||
package net.sourceforge.plantuml.argon2;
|
||||
|
||||
public class Util {
|
||||
|
63
src/net/sourceforge/plantuml/argon2/Validation.java
Normal file
63
src/net/sourceforge/plantuml/argon2/Validation.java
Normal file
@ -0,0 +1,63 @@
|
||||
/* This file is taken from
|
||||
https://github.com/andreas1327250/argon2-java
|
||||
|
||||
Original Author: Andreas Gadermaier <up.gadermaier@gmail.com>
|
||||
*/
|
||||
package net.sourceforge.plantuml.argon2;
|
||||
|
||||
import static net.sourceforge.plantuml.argon2.Constants.Constraints.MAX_AD_LENGTH;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.Constraints.MAX_ITERATIONS;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.Constraints.MAX_PARALLELISM;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.Constraints.MAX_PWD_LENGTH;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.Constraints.MAX_SALT_LENGTH;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.Constraints.MAX_SECRET_LENGTH;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.Constraints.MIN_ITERATIONS;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.Constraints.MIN_PARALLELISM;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.Constraints.MIN_PWD_LENGTH;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.Constraints.MIN_SALT_LENGTH;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.Messages.ADDITIONAL_MAX_MSG;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.Messages.M_MIN_MSG;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.Messages.PWD_MAX_MSG;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.Messages.PWD_MIN_MSG;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.Messages.P_MAX_MSG;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.Messages.P_MIN_MSG;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.Messages.SALT_MAX_MSG;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.Messages.SALT_MIN_MSG;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.Messages.SECRET_MAX_MSG;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.Messages.T_MAX_MSG;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.Messages.T_MIN_MSG;
|
||||
|
||||
import net.sourceforge.plantuml.argon2.exception.Argon2InvalidParameterException;
|
||||
|
||||
class Validation {
|
||||
|
||||
static void validateInput(Argon2 argon2){
|
||||
String message = null;
|
||||
|
||||
if (argon2.getLanes() < MIN_PARALLELISM)
|
||||
message = P_MIN_MSG;
|
||||
else if (argon2.getLanes() > MAX_PARALLELISM)
|
||||
message = P_MAX_MSG;
|
||||
else if(argon2.getMemory() < 2 * argon2.getLanes())
|
||||
message = M_MIN_MSG;
|
||||
else if(argon2.getIterations() < MIN_ITERATIONS)
|
||||
message = T_MIN_MSG;
|
||||
else if(argon2.getIterations() > MAX_ITERATIONS)
|
||||
message = T_MAX_MSG;
|
||||
else if(argon2.getPasswordLength() < MIN_PWD_LENGTH)
|
||||
message = PWD_MIN_MSG;
|
||||
else if(argon2.getPasswordLength() > MAX_PWD_LENGTH)
|
||||
message = PWD_MAX_MSG;
|
||||
else if(argon2.getSaltLength() < MIN_SALT_LENGTH)
|
||||
message = SALT_MIN_MSG;
|
||||
else if(argon2.getSaltLength() > MAX_SALT_LENGTH)
|
||||
message = SALT_MAX_MSG;
|
||||
else if(argon2.getSecretLength() > MAX_SECRET_LENGTH)
|
||||
message = SECRET_MAX_MSG;
|
||||
else if(argon2.getAdditionalLength() > MAX_AD_LENGTH)
|
||||
message = ADDITIONAL_MAX_MSG;
|
||||
|
||||
if(message != null)
|
||||
throw new Argon2InvalidParameterException(message);
|
||||
}
|
||||
}
|
@ -3,9 +3,9 @@
|
||||
|
||||
Original Author: Andreas Gadermaier <up.gadermaier@gmail.com>
|
||||
*/
|
||||
package ext.plantuml.com.at.gadermaier.argon2.algorithm;
|
||||
package net.sourceforge.plantuml.argon2.algorithm;
|
||||
|
||||
import ext.plantuml.com.at.gadermaier.argon2.model.Block;
|
||||
import net.sourceforge.plantuml.argon2.model.Block;
|
||||
|
||||
class FillBlock {
|
||||
|
@ -3,9 +3,9 @@
|
||||
|
||||
Original Author: Andreas Gadermaier <up.gadermaier@gmail.com>
|
||||
*/
|
||||
package ext.plantuml.com.at.gadermaier.argon2.algorithm;
|
||||
package net.sourceforge.plantuml.argon2.algorithm;
|
||||
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.ARGON2_SYNC_POINTS;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.ARGON2_SYNC_POINTS;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -14,8 +14,8 @@ import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.Future;
|
||||
|
||||
import ext.plantuml.com.at.gadermaier.argon2.model.Instance;
|
||||
import ext.plantuml.com.at.gadermaier.argon2.model.Position;
|
||||
import net.sourceforge.plantuml.argon2.model.Instance;
|
||||
import net.sourceforge.plantuml.argon2.model.Position;
|
||||
|
||||
public class FillMemory {
|
||||
|
@ -3,17 +3,17 @@
|
||||
|
||||
Original Author: Andreas Gadermaier <up.gadermaier@gmail.com>
|
||||
*/
|
||||
package ext.plantuml.com.at.gadermaier.argon2.algorithm;
|
||||
package net.sourceforge.plantuml.argon2.algorithm;
|
||||
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.ARGON2_ADDRESSES_IN_BLOCK;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.ARGON2_VERSION_10;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.ARGON2_ADDRESSES_IN_BLOCK;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.ARGON2_VERSION_10;
|
||||
|
||||
import ext.plantuml.com.at.gadermaier.argon2.Constants;
|
||||
import ext.plantuml.com.at.gadermaier.argon2.Util;
|
||||
import ext.plantuml.com.at.gadermaier.argon2.model.Argon2Type;
|
||||
import ext.plantuml.com.at.gadermaier.argon2.model.Block;
|
||||
import ext.plantuml.com.at.gadermaier.argon2.model.Instance;
|
||||
import ext.plantuml.com.at.gadermaier.argon2.model.Position;
|
||||
import net.sourceforge.plantuml.argon2.Constants;
|
||||
import net.sourceforge.plantuml.argon2.Util;
|
||||
import net.sourceforge.plantuml.argon2.model.Argon2Type;
|
||||
import net.sourceforge.plantuml.argon2.model.Block;
|
||||
import net.sourceforge.plantuml.argon2.model.Instance;
|
||||
import net.sourceforge.plantuml.argon2.model.Position;
|
||||
|
||||
|
||||
class FillSegment {
|
@ -3,11 +3,11 @@
|
||||
|
||||
Original Author: Andreas Gadermaier <up.gadermaier@gmail.com>
|
||||
*/
|
||||
package ext.plantuml.com.at.gadermaier.argon2.algorithm;
|
||||
package net.sourceforge.plantuml.argon2.algorithm;
|
||||
|
||||
import ext.plantuml.com.at.gadermaier.argon2.Argon2;
|
||||
import ext.plantuml.com.at.gadermaier.argon2.model.Block;
|
||||
import ext.plantuml.com.at.gadermaier.argon2.model.Instance;
|
||||
import net.sourceforge.plantuml.argon2.Argon2;
|
||||
import net.sourceforge.plantuml.argon2.model.Block;
|
||||
import net.sourceforge.plantuml.argon2.model.Instance;
|
||||
|
||||
public class Finalize {
|
||||
|
@ -3,15 +3,15 @@
|
||||
|
||||
Original Author: Andreas Gadermaier <up.gadermaier@gmail.com>
|
||||
*/
|
||||
package ext.plantuml.com.at.gadermaier.argon2.algorithm;
|
||||
package net.sourceforge.plantuml.argon2.algorithm;
|
||||
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.ARGON2_BLOCK_SIZE;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.ARGON2_PREHASH_DIGEST_LENGTH;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.ARGON2_PREHASH_SEED_LENGTH;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.ARGON2_BLOCK_SIZE;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.ARGON2_PREHASH_DIGEST_LENGTH;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.ARGON2_PREHASH_SEED_LENGTH;
|
||||
|
||||
import ext.plantuml.com.at.gadermaier.argon2.Util;
|
||||
import ext.plantuml.com.at.gadermaier.argon2.blake2.Blake2b;
|
||||
import ext.plantuml.com.at.gadermaier.argon2.model.Block;
|
||||
import net.sourceforge.plantuml.argon2.Util;
|
||||
import net.sourceforge.plantuml.argon2.blake2.Blake2b;
|
||||
import net.sourceforge.plantuml.argon2.model.Block;
|
||||
|
||||
class Functions {
|
||||
|
@ -3,15 +3,15 @@
|
||||
|
||||
Original Author: Andreas Gadermaier <up.gadermaier@gmail.com>
|
||||
*/
|
||||
package ext.plantuml.com.at.gadermaier.argon2.algorithm;
|
||||
package net.sourceforge.plantuml.argon2.algorithm;
|
||||
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.ARGON2_BLOCK_SIZE;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.ARGON2_PREHASH_DIGEST_LENGTH;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.ARGON2_PREHASH_SEED_LENGTH;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.ARGON2_BLOCK_SIZE;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.ARGON2_PREHASH_DIGEST_LENGTH;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.ARGON2_PREHASH_SEED_LENGTH;
|
||||
|
||||
import ext.plantuml.com.at.gadermaier.argon2.Argon2;
|
||||
import ext.plantuml.com.at.gadermaier.argon2.Util;
|
||||
import ext.plantuml.com.at.gadermaier.argon2.model.Instance;
|
||||
import net.sourceforge.plantuml.argon2.Argon2;
|
||||
import net.sourceforge.plantuml.argon2.Util;
|
||||
import net.sourceforge.plantuml.argon2.model.Instance;
|
||||
|
||||
public class Initialize {
|
||||
|
@ -23,12 +23,11 @@
|
||||
You should have received a copy of the CC0 Public Domain Dedication along with
|
||||
this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
*/
|
||||
|
||||
package ext.plantuml.com.at.gadermaier.argon2.blake2;
|
||||
package net.sourceforge.plantuml.argon2.blake2;
|
||||
|
||||
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.blake2.Blake2b.Engine.Assert.*;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.blake2.Blake2b.Engine.LittleEndian.*;
|
||||
import static net.sourceforge.plantuml.argon2.blake2.Blake2b.Engine.Assert.*;
|
||||
import static net.sourceforge.plantuml.argon2.blake2.Blake2b.Engine.LittleEndian.*;
|
||||
|
||||
import java.io.PrintStream;
|
||||
import java.security.Key;
|
@ -3,7 +3,7 @@
|
||||
|
||||
Original Author: Andreas Gadermaier <up.gadermaier@gmail.com>
|
||||
*/
|
||||
package ext.plantuml.com.at.gadermaier.argon2.exception;
|
||||
package net.sourceforge.plantuml.argon2.exception;
|
||||
|
||||
/* dislike checked exceptions */
|
||||
class Argon2Exception extends RuntimeException {
|
@ -3,7 +3,7 @@
|
||||
|
||||
Original Author: Andreas Gadermaier <up.gadermaier@gmail.com>
|
||||
*/
|
||||
package ext.plantuml.com.at.gadermaier.argon2.exception;
|
||||
package net.sourceforge.plantuml.argon2.exception;
|
||||
|
||||
public class Argon2InvalidParameterException extends Argon2Exception{
|
||||
public Argon2InvalidParameterException(String message) {
|
@ -3,7 +3,7 @@
|
||||
|
||||
Original Author: Andreas Gadermaier <up.gadermaier@gmail.com>
|
||||
*/
|
||||
package ext.plantuml.com.at.gadermaier.argon2.model;
|
||||
package net.sourceforge.plantuml.argon2.model;
|
||||
|
||||
public enum Argon2Type {
|
||||
Argon2d, Argon2i, Argon2id;
|
@ -3,15 +3,15 @@
|
||||
|
||||
Original Author: Andreas Gadermaier <up.gadermaier@gmail.com>
|
||||
*/
|
||||
package ext.plantuml.com.at.gadermaier.argon2.model;
|
||||
package net.sourceforge.plantuml.argon2.model;
|
||||
|
||||
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.ARGON2_BLOCK_SIZE;
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.ARGON2_QWORDS_IN_BLOCK;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.ARGON2_BLOCK_SIZE;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.ARGON2_QWORDS_IN_BLOCK;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import ext.plantuml.com.at.gadermaier.argon2.Util;
|
||||
import net.sourceforge.plantuml.argon2.Util;
|
||||
|
||||
public class Block {
|
||||
|
@ -3,11 +3,11 @@
|
||||
|
||||
Original Author: Andreas Gadermaier <up.gadermaier@gmail.com>
|
||||
*/
|
||||
package ext.plantuml.com.at.gadermaier.argon2.model;
|
||||
package net.sourceforge.plantuml.argon2.model;
|
||||
|
||||
import static ext.plantuml.com.at.gadermaier.argon2.Constants.ARGON2_SYNC_POINTS;
|
||||
import static net.sourceforge.plantuml.argon2.Constants.ARGON2_SYNC_POINTS;
|
||||
|
||||
import ext.plantuml.com.at.gadermaier.argon2.Argon2;
|
||||
import net.sourceforge.plantuml.argon2.Argon2;
|
||||
|
||||
public class Instance {
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
Original Author: Andreas Gadermaier <up.gadermaier@gmail.com>
|
||||
*/
|
||||
package ext.plantuml.com.at.gadermaier.argon2.model;
|
||||
package net.sourceforge.plantuml.argon2.model;
|
||||
|
||||
public class Position {
|
||||
|
@ -49,6 +49,7 @@ import net.sourceforge.plantuml.UmlDiagramType;
|
||||
import net.sourceforge.plantuml.command.CommandExecutionResult;
|
||||
import net.sourceforge.plantuml.core.DiagramDescription;
|
||||
import net.sourceforge.plantuml.core.ImageData;
|
||||
import net.sourceforge.plantuml.core.UmlSource;
|
||||
import net.sourceforge.plantuml.graphic.InnerStrategy;
|
||||
import net.sourceforge.plantuml.graphic.StringBounder;
|
||||
import net.sourceforge.plantuml.svek.TextBlockBackcolored;
|
||||
@ -68,8 +69,8 @@ public class BoardDiagram extends UmlDiagram {
|
||||
return new DiagramDescription("Board");
|
||||
}
|
||||
|
||||
public BoardDiagram() {
|
||||
super(UmlDiagramType.BOARD);
|
||||
public BoardDiagram(UmlSource source) {
|
||||
super(source, UmlDiagramType.BOARD);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -38,9 +38,11 @@ package net.sourceforge.plantuml.board;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.sourceforge.plantuml.ISkinSimple;
|
||||
import net.sourceforge.plantuml.command.Command;
|
||||
import net.sourceforge.plantuml.command.PSystemCommandFactory;
|
||||
import net.sourceforge.plantuml.core.DiagramType;
|
||||
import net.sourceforge.plantuml.core.UmlSource;
|
||||
|
||||
public class BoardDiagramFactory extends PSystemCommandFactory {
|
||||
|
||||
@ -65,8 +67,8 @@ public class BoardDiagramFactory extends PSystemCommandFactory {
|
||||
}
|
||||
|
||||
@Override
|
||||
public BoardDiagram createEmptyDiagram() {
|
||||
return new BoardDiagram();
|
||||
public BoardDiagram createEmptyDiagram(UmlSource source, ISkinSimple skinParam) {
|
||||
return new BoardDiagram(source);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -48,6 +48,7 @@ import net.sourceforge.plantuml.UmlDiagramType;
|
||||
import net.sourceforge.plantuml.command.CommandExecutionResult;
|
||||
import net.sourceforge.plantuml.core.DiagramDescription;
|
||||
import net.sourceforge.plantuml.core.ImageData;
|
||||
import net.sourceforge.plantuml.core.UmlSource;
|
||||
import net.sourceforge.plantuml.graphic.UDrawable;
|
||||
import net.sourceforge.plantuml.ugraphic.ImageBuilder;
|
||||
|
||||
@ -73,8 +74,8 @@ public class BpmDiagram extends UmlDiagram {
|
||||
return new DiagramDescription("(Bpm Diagram)");
|
||||
}
|
||||
|
||||
public BpmDiagram() {
|
||||
super(UmlDiagramType.BPM);
|
||||
public BpmDiagram(UmlSource source) {
|
||||
super(source, UmlDiagramType.BPM);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -39,9 +39,11 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.sourceforge.plantuml.AbstractPSystem;
|
||||
import net.sourceforge.plantuml.ISkinSimple;
|
||||
import net.sourceforge.plantuml.command.Command;
|
||||
import net.sourceforge.plantuml.command.PSystemCommandFactory;
|
||||
import net.sourceforge.plantuml.core.DiagramType;
|
||||
import net.sourceforge.plantuml.core.UmlSource;
|
||||
|
||||
public class BpmDiagramFactory extends PSystemCommandFactory {
|
||||
|
||||
@ -63,8 +65,8 @@ public class BpmDiagramFactory extends PSystemCommandFactory {
|
||||
}
|
||||
|
||||
@Override
|
||||
public AbstractPSystem createEmptyDiagram() {
|
||||
return new BpmDiagram();
|
||||
public AbstractPSystem createEmptyDiagram(UmlSource source, ISkinSimple skinParam) {
|
||||
return new BpmDiagram(source);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -53,7 +53,7 @@ public class CommandGoto extends SingleLineCommand2<BpmDiagram> {
|
||||
return RegexConcat.build(CommandGoto.class.getName(), RegexLeaf.start(), //
|
||||
new RegexLeaf("goto"), //
|
||||
RegexLeaf.spaceOneOrMore(), //
|
||||
new RegexLeaf("ID", "([\\p{L}0-9_.@]+)"), //
|
||||
new RegexLeaf("ID", "([%pLN_.@]+)"), //
|
||||
RegexLeaf.end());
|
||||
}
|
||||
|
||||
|
@ -51,7 +51,7 @@ public class CommandMerge extends SingleLineCommand2<BpmDiagram> {
|
||||
|
||||
static IRegex getRegexConcat() {
|
||||
return RegexConcat.build(CommandMerge.class.getName(), RegexLeaf.start(), //
|
||||
new RegexLeaf("ID", "([\\p{L}0-9_.@]+)"), //
|
||||
new RegexLeaf("ID", "([%pLN_.@]+)"), //
|
||||
new RegexLeaf(":?"), //
|
||||
new RegexLeaf("\\<\\+\\>"), //
|
||||
RegexLeaf.end());
|
||||
|
@ -53,7 +53,7 @@ public class CommandResume extends SingleLineCommand2<BpmDiagram> {
|
||||
return RegexConcat.build(CommandResume.class.getName(), RegexLeaf.start(), //
|
||||
new RegexLeaf("resume"), //
|
||||
RegexLeaf.spaceOneOrMore(), //
|
||||
new RegexLeaf("ID", "([\\p{L}0-9_.@]+)"), //
|
||||
new RegexLeaf("ID", "([%pLN_.@]+)"), //
|
||||
RegexLeaf.end());
|
||||
}
|
||||
|
||||
|
@ -43,12 +43,13 @@ import java.util.List;
|
||||
import net.sourceforge.plantuml.ISkinSimple;
|
||||
import net.sourceforge.plantuml.UmlDiagramType;
|
||||
import net.sourceforge.plantuml.core.DiagramDescription;
|
||||
import net.sourceforge.plantuml.core.UmlSource;
|
||||
import net.sourceforge.plantuml.cucadiagram.CucaDiagram;
|
||||
|
||||
public abstract class AbstractEntityDiagram extends CucaDiagram {
|
||||
|
||||
public AbstractEntityDiagram(UmlDiagramType type, ISkinSimple orig) {
|
||||
super(type, orig);
|
||||
public AbstractEntityDiagram(UmlSource source, UmlDiagramType type, ISkinSimple orig) {
|
||||
super(source, type, orig);
|
||||
}
|
||||
|
||||
final protected List<String> getDotStrings() {
|
||||
|
@ -43,6 +43,7 @@ import net.sourceforge.plantuml.FileFormatOption;
|
||||
import net.sourceforge.plantuml.ISkinSimple;
|
||||
import net.sourceforge.plantuml.UmlDiagramType;
|
||||
import net.sourceforge.plantuml.core.ImageData;
|
||||
import net.sourceforge.plantuml.core.UmlSource;
|
||||
import net.sourceforge.plantuml.creole.CreoleMode;
|
||||
import net.sourceforge.plantuml.cucadiagram.Code;
|
||||
import net.sourceforge.plantuml.cucadiagram.Display;
|
||||
@ -60,8 +61,8 @@ import net.sourceforge.plantuml.svek.image.EntityImageClass;
|
||||
|
||||
public class ClassDiagram extends AbstractClassOrObjectDiagram {
|
||||
|
||||
public ClassDiagram(ISkinSimple skinParam) {
|
||||
super(UmlDiagramType.CLASS, skinParam);
|
||||
public ClassDiagram(UmlSource source, ISkinSimple skinParam) {
|
||||
super(source, UmlDiagramType.CLASS, skinParam);
|
||||
}
|
||||
|
||||
private Code getShortName1972(Code code) {
|
||||
|
@ -72,6 +72,7 @@ import net.sourceforge.plantuml.command.note.CommandFactoryNoteOnEntity;
|
||||
import net.sourceforge.plantuml.command.note.CommandFactoryNoteOnLink;
|
||||
import net.sourceforge.plantuml.command.note.CommandFactoryTipOnEntity;
|
||||
import net.sourceforge.plantuml.command.regex.RegexLeaf;
|
||||
import net.sourceforge.plantuml.core.UmlSource;
|
||||
import net.sourceforge.plantuml.descdiagram.command.CommandCreateElementMultilines;
|
||||
import net.sourceforge.plantuml.descdiagram.command.CommandCreateElementParenthesis;
|
||||
import net.sourceforge.plantuml.descdiagram.command.CommandNewpage;
|
||||
@ -82,15 +83,9 @@ import net.sourceforge.plantuml.objectdiagram.command.CommandCreateMap;
|
||||
|
||||
public class ClassDiagramFactory extends PSystemCommandFactory {
|
||||
|
||||
private final ISkinSimple skinParam;
|
||||
|
||||
public ClassDiagramFactory(ISkinSimple skinParam) {
|
||||
this.skinParam = skinParam;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ClassDiagram createEmptyDiagram() {
|
||||
return new ClassDiagram(skinParam);
|
||||
public ClassDiagram createEmptyDiagram(UmlSource source, ISkinSimple skinParam) {
|
||||
return new ClassDiagram(source, skinParam);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -57,7 +57,7 @@ public class CommandAddMethod extends SingleLineCommand2<ClassDiagram> {
|
||||
|
||||
static IRegex getRegexConcat() {
|
||||
return RegexConcat.build(CommandAddMethod.class.getName(), RegexLeaf.start(), //
|
||||
new RegexLeaf("NAME", "([\\p{L}0-9_.]+|[%g][^%g]+[%g])"), //
|
||||
new RegexLeaf("NAME", "([%pLN_.]+|[%g][^%g]+[%g])"), //
|
||||
RegexLeaf.spaceOneOrMore(), //
|
||||
new RegexLeaf(":"), //
|
||||
RegexLeaf.spaceOneOrMore(), //
|
||||
|
@ -72,8 +72,8 @@ import net.sourceforge.plantuml.ugraphic.color.NoSuchColorException;
|
||||
|
||||
public class CommandCreateClassMultilines extends CommandMultilines2<ClassDiagram> {
|
||||
|
||||
private static final String CODE = CommandLinkClass.getSeparator() + "?[\\p{L}0-9_]+" + "(?:"
|
||||
+ CommandLinkClass.getSeparator() + "[\\p{L}0-9_]+)*";
|
||||
private static final String CODE = CommandLinkClass.getSeparator() + "?[%pLN_]+" + "(?:"
|
||||
+ CommandLinkClass.getSeparator() + "[%pLN_]+)*";
|
||||
public static final String CODES = CODE + "(?:\\s*,\\s*" + CODE + ")*";
|
||||
|
||||
enum Mode {
|
||||
@ -86,7 +86,7 @@ public class CommandCreateClassMultilines extends CommandMultilines2<ClassDiagra
|
||||
|
||||
@Override
|
||||
public String getPatternEnd() {
|
||||
return "(?i)^[%s]*\\}[%s]*$";
|
||||
return "^[%s]*\\}[%s]*$";
|
||||
}
|
||||
|
||||
private static IRegex getRegexConcat() {
|
||||
|
@ -58,7 +58,7 @@ public class CommandDiamondAssociation extends SingleLineCommand2<ClassDiagram>
|
||||
return RegexConcat.build(CommandDiamondAssociation.class.getName(), RegexLeaf.start(), //
|
||||
new RegexLeaf("\\<\\>"), //
|
||||
RegexLeaf.spaceZeroOrMore(), //
|
||||
new RegexLeaf("CODE", "([\\p{L}0-9_.]+)"), //
|
||||
new RegexLeaf("CODE", "([%pLN_.]+)"), //
|
||||
RegexLeaf.end()); //
|
||||
}
|
||||
|
||||
|
@ -68,7 +68,7 @@ public class CommandHideShowByGender extends SingleLineCommand2<UmlDiagram> {
|
||||
new RegexLeaf("COMMAND", "(hide|show)"), //
|
||||
RegexLeaf.spaceOneOrMore(), //
|
||||
new RegexLeaf("GENDER",
|
||||
"(?:(class|object|interface|enum|annotation|abstract|[\\p{L}0-9_.]+|[%g][^%g]+[%g]|\\<\\<.*\\>\\>)[%s]+)*?"), //
|
||||
"(?:(class|object|interface|enum|annotation|abstract|[%pLN_.]+|[%g][^%g]+[%g]|\\<\\<.*\\>\\>)[%s]+)*?"), //
|
||||
new RegexOptional( //
|
||||
new RegexConcat( //
|
||||
new RegexLeaf("EMPTY", "(empty)"), //
|
||||
|
@ -66,8 +66,8 @@ import net.sourceforge.plantuml.ugraphic.color.NoSuchColorException;
|
||||
|
||||
final public class CommandLinkClass extends SingleLineCommand2<AbstractClassOrObjectDiagram> {
|
||||
|
||||
private static final String SINGLE = "[.\\\\]{0,2}[\\p{L}0-9_]+(?:[.\\\\]{1,2}[\\p{L}0-9_]+)*";
|
||||
private static final String SINGLE_GUILLEMENT = "[%g][.\\\\]{0,2}[\\p{L}0-9_]+(?:[.\\\\]{1,2}[\\p{L}0-9_]+)*[%g]";
|
||||
private static final String SINGLE = "[.\\\\]{0,2}[%pLN_]+(?:[.\\\\]{1,2}[%pLN_]+)*";
|
||||
private static final String SINGLE_GUILLEMENT = "[%g][.\\\\]{0,2}[%pLN_]+(?:[.\\\\]{1,2}[%pLN_]+)*[%g]";
|
||||
private static final String SINGLE2 = "(?:" + SINGLE + "|" + SINGLE_GUILLEMENT + ")";
|
||||
private static final String COUPLE = "\\([%s]*(" + SINGLE2 + ")[%s]*,[%s]*(" + SINGLE2 + ")[%s]*\\)";
|
||||
|
||||
@ -124,7 +124,7 @@ final public class CommandLinkClass extends SingleLineCommand2<AbstractClassOrOb
|
||||
}
|
||||
|
||||
private static String getClassIdentifier() {
|
||||
return "(" + getSeparator() + "?[\\p{L}0-9_$]+(?:" + getSeparator() + "[\\p{L}0-9_$]+)*|[%g][^%g]+[%g])";
|
||||
return "(" + getSeparator() + "?[%pLN_$]+(?:" + getSeparator() + "[%pLN_$]+)*|[%g][^%g]+[%g])";
|
||||
}
|
||||
|
||||
public static String getSeparator() {
|
||||
|
@ -73,7 +73,7 @@ final public class CommandLinkLollipop extends SingleLineCommand2<AbstractClassO
|
||||
RegexLeaf.spaceOneOrMore() //
|
||||
)), //
|
||||
new RegexLeaf("ENT1", "(?:" + optionalKeywords(umlDiagramType) + "[%s]+)?"
|
||||
+ "(\\.?[\\p{L}0-9_]+(?:\\.[\\p{L}0-9_]+)*|[%g][^%g]+[%g])[%s]*(\\<\\<.*\\>\\>)?"), //
|
||||
+ "(\\.?[%pLN_]+(?:\\.[%pLN_]+)*|[%g][^%g]+[%g])[%s]*(\\<\\<.*\\>\\>)?"), //
|
||||
RegexLeaf.spaceZeroOrMore(), //
|
||||
new RegexOptional(new RegexLeaf("FIRST_LABEL", "[%g]([^%g]+)[%g]")), //
|
||||
RegexLeaf.spaceZeroOrMore(), //
|
||||
@ -83,7 +83,7 @@ final public class CommandLinkLollipop extends SingleLineCommand2<AbstractClassO
|
||||
new RegexOptional(new RegexLeaf("SECOND_LABEL", "[%g]([^%g]+)[%g]")), //
|
||||
RegexLeaf.spaceZeroOrMore(), //
|
||||
new RegexLeaf("ENT2", "(?:" + optionalKeywords(umlDiagramType) + "[%s]+)?"
|
||||
+ "(\\.?[\\p{L}0-9_]+(?:\\.[\\p{L}0-9_]+)*|[%g][^%g]+[%g])[%s]*(\\<\\<.*\\>\\>)?"), //
|
||||
+ "(\\.?[%pLN_]+(?:\\.[%pLN_]+)*|[%g][^%g]+[%g])[%s]*(\\<\\<.*\\>\\>)?"), //
|
||||
RegexLeaf.spaceZeroOrMore(), //
|
||||
new RegexOptional( //
|
||||
new RegexConcat( //
|
||||
|
@ -59,7 +59,7 @@ public class CommandStereotype extends SingleLineCommand2<ClassDiagram> {
|
||||
static IRegex getRegexConcat() {
|
||||
return RegexConcat.build(CommandStereotype.class.getName(), //
|
||||
RegexLeaf.start(), //
|
||||
new RegexLeaf("NAME", "([\\p{L}0-9_.]+|[%g][^%g]+[%g])"), //
|
||||
new RegexLeaf("NAME", "([%pLN_.]+|[%g][^%g]+[%g])"), //
|
||||
RegexLeaf.spaceZeroOrMore(), //
|
||||
new RegexLeaf("STEREO", "(\\<\\<.*\\>\\>)"), RegexLeaf.end()); //
|
||||
}
|
||||
|
@ -64,7 +64,7 @@ public class CommandUrl extends SingleLineCommand2<AbstractEntityDiagram> {
|
||||
RegexLeaf.spaceZeroOrMore(), //
|
||||
new RegexOptional(new RegexLeaf("of|for")), //
|
||||
RegexLeaf.spaceOneOrMore(), //
|
||||
new RegexLeaf("CODE", "([\\p{L}0-9_.]+|[%g][^%g]+[%g])"), //
|
||||
new RegexLeaf("CODE", "([%pLN_.]+|[%g][^%g]+[%g])"), //
|
||||
RegexLeaf.spaceOneOrMore(), //
|
||||
new RegexOptional(new RegexLeaf("is")), //
|
||||
RegexLeaf.spaceZeroOrMore(), //
|
||||
|
@ -49,7 +49,7 @@ import net.sourceforge.plantuml.preproc.UncommentReadLine;
|
||||
|
||||
public class ArobaseStringCompressor implements StringCompressor {
|
||||
|
||||
private final static Pattern2 p = MyPattern.cmpile("(?s)(?i)^[%s]*(@startuml[^\\n\\r]*)?[%s]*(.*?)[%s]*(@enduml)?[%s]*$");
|
||||
private final static Pattern2 p = MyPattern.cmpile("(?s)^[%s]*(@startuml[^\\n\\r]*)?[%s]*(.*?)[%s]*(@enduml)?[%s]*$");
|
||||
|
||||
public String compress(final String data) throws IOException {
|
||||
final ReadLine r = new UncommentReadLine(ReadLineReader.create(new StringReader(data), "COMPRESS"));
|
||||
|
@ -40,12 +40,12 @@ import net.sourceforge.plantuml.TitledDiagram;
|
||||
public class CommandAffineTransformMultiline extends CommandMultilines<TitledDiagram> {
|
||||
|
||||
public CommandAffineTransformMultiline() {
|
||||
super("(?i)^!transformation[%s]+\\{[%s]*$");
|
||||
super("^!transformation[%s]+\\{[%s]*$");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPatternEnd() {
|
||||
return "(?i)^[%s]*!\\}[%s]*$";
|
||||
return "^[%s]*!\\}[%s]*$";
|
||||
}
|
||||
|
||||
public CommandExecutionResult execute(final TitledDiagram diagram, BlocLines lines) {
|
||||
|
@ -60,7 +60,7 @@ public class CommandCaption extends SingleLineCommand2<TitledDiagram> {
|
||||
new RegexLeaf("(?:[%s]*:[%s]*|[%s]+)"), //
|
||||
new RegexOr(//
|
||||
new RegexLeaf("DISPLAY1", "[%g](.*)[%g]"), //
|
||||
new RegexLeaf("DISPLAY2", "(.*[\\p{L}0-9_.].*)")), //
|
||||
new RegexLeaf("DISPLAY2", "(.*[%pLN_.].*)")), //
|
||||
RegexLeaf.end()); //
|
||||
}
|
||||
|
||||
|
@ -58,7 +58,7 @@ public final class CommandFactorySprite implements SingleMultiFactoryCommand<Wit
|
||||
new RegexLeaf("sprite"), //
|
||||
RegexLeaf.spaceOneOrMore(), //
|
||||
new RegexLeaf("\\$?"), //
|
||||
new RegexLeaf("NAME", "([-.\\p{L}0-9_]+)"), //
|
||||
new RegexLeaf("NAME", "([-.%pLN_]+)"), //
|
||||
RegexLeaf.spaceZeroOrMore(), //
|
||||
new RegexOptional(new RegexLeaf("DIM", "\\[(\\d+)x(\\d+)/(?:(\\d+)(z)?|(color))\\]")), //
|
||||
RegexLeaf.spaceZeroOrMore(), //
|
||||
@ -70,7 +70,7 @@ public final class CommandFactorySprite implements SingleMultiFactoryCommand<Wit
|
||||
new RegexLeaf("sprite"), //
|
||||
RegexLeaf.spaceOneOrMore(), //
|
||||
new RegexLeaf("\\$?"), //
|
||||
new RegexLeaf("NAME", "([-.\\p{L}0-9_]+)"), //
|
||||
new RegexLeaf("NAME", "([-.%pLN_]+)"), //
|
||||
RegexLeaf.spaceZeroOrMore(), //
|
||||
new RegexOptional(new RegexLeaf("DIM", "\\[(\\d+)x(\\d+)/(?:(\\d+)(z)|(color))\\]")), //
|
||||
RegexLeaf.spaceOneOrMore(), //
|
||||
@ -94,7 +94,7 @@ public final class CommandFactorySprite implements SingleMultiFactoryCommand<Wit
|
||||
|
||||
@Override
|
||||
public String getPatternEnd() {
|
||||
return "(?i)^end[%s]?sprite|\\}$";
|
||||
return "^end[%s]?sprite|\\}$";
|
||||
}
|
||||
|
||||
protected CommandExecutionResult executeNow(final WithSprite system, BlocLines lines) {
|
||||
|
@ -65,7 +65,7 @@ public class CommandFooter extends SingleLineCommand2<TitledDiagram> {
|
||||
RegexLeaf.spaceOneOrMore()), //
|
||||
new RegexOr(//
|
||||
new RegexLeaf("LABEL1", "[%g](.*)[%g]"), //
|
||||
new RegexLeaf("LABEL2", "(.*[\\p{L}0-9_.].*)")), //
|
||||
new RegexLeaf("LABEL2", "(.*[%pLN_.].*)")), //
|
||||
RegexLeaf.end()); //
|
||||
}
|
||||
|
||||
|
@ -67,7 +67,7 @@ public class CommandHeader extends SingleLineCommand2<TitledDiagram> {
|
||||
RegexLeaf.spaceOneOrMore()), //
|
||||
new RegexOr(//
|
||||
new RegexLeaf("LABEL1", "[%g](.*)[%g]"), //
|
||||
new RegexLeaf("LABEL2", "(.*[\\p{L}0-9_.].*)")), //
|
||||
new RegexLeaf("LABEL2", "(.*[%pLN_.].*)")), //
|
||||
RegexLeaf.end()); //
|
||||
}
|
||||
|
||||
|
@ -60,7 +60,7 @@ public class CommandLegend extends SingleLineCommand2<TitledDiagram> {
|
||||
new RegexLeaf("(?:[%s]*:[%s]*|[%s]+)"), //
|
||||
new RegexOr(//
|
||||
new RegexLeaf("LEGEND1", "[%g](.*)[%g]"), //
|
||||
new RegexLeaf("LEGEND2", "(.*[\\p{L}0-9_.].*)")), //
|
||||
new RegexLeaf("LEGEND2", "(.*[%pLN_.].*)")), //
|
||||
RegexLeaf.end()); //
|
||||
}
|
||||
|
||||
|
@ -56,7 +56,7 @@ public class CommandMainframe extends SingleLineCommand2<TitledDiagram> {
|
||||
new RegexOr( //
|
||||
new RegexConcat(RegexLeaf.spaceZeroOrMore(), new RegexLeaf(":"), RegexLeaf.spaceZeroOrMore()), //
|
||||
RegexLeaf.spaceOneOrMore()), //
|
||||
new RegexLeaf("LABEL", "(.*[\\p{L}0-9_.].*)"), RegexLeaf.end()); //
|
||||
new RegexLeaf("LABEL", "(.*[%pLN_.].*)"), RegexLeaf.end()); //
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -45,7 +45,7 @@ public abstract class CommandMultilines<S extends Diagram> implements Command<S>
|
||||
private final Pattern2 starting;
|
||||
|
||||
public CommandMultilines(String patternStart) {
|
||||
if (patternStart.startsWith("(?i)^") == false || patternStart.endsWith("$") == false) {
|
||||
if (patternStart.startsWith("^") == false || patternStart.endsWith("$") == false) {
|
||||
throw new IllegalArgumentException("Bad pattern " + patternStart);
|
||||
}
|
||||
this.starting = MyPattern.cmpile(patternStart);
|
||||
|
@ -46,7 +46,7 @@ public abstract class CommandMultilinesBracket<S extends Diagram> implements Com
|
||||
private final Pattern2 starting;
|
||||
|
||||
public CommandMultilinesBracket(String patternStart) {
|
||||
if (patternStart.startsWith("(?i)^") == false || patternStart.endsWith("$") == false) {
|
||||
if (patternStart.startsWith("^") == false || patternStart.endsWith("$") == false) {
|
||||
throw new IllegalArgumentException("Bad pattern " + patternStart);
|
||||
}
|
||||
this.starting = MyPattern.cmpile(patternStart);
|
||||
|
@ -45,12 +45,12 @@ import net.sourceforge.plantuml.ugraphic.color.NoSuchColorException;
|
||||
public class CommandMultilinesCaption extends CommandMultilines<TitledDiagram> {
|
||||
|
||||
public CommandMultilinesCaption() {
|
||||
super("(?i)^caption$");
|
||||
super("^caption$");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPatternEnd() {
|
||||
return "(?i)^end[%s]?caption$";
|
||||
return "^end[%s]?caption$";
|
||||
}
|
||||
|
||||
public CommandExecutionResult execute(final TitledDiagram diagram, BlocLines lines) throws NoSuchColorException {
|
||||
|
@ -39,9 +39,9 @@ import net.sourceforge.plantuml.core.Diagram;
|
||||
|
||||
public class CommandMultilinesComment extends CommandMultilines<Diagram> {
|
||||
|
||||
public static final String COMMENT_MULTILINE_START = "(?i)^[%s]*/[%q]([^%q]|[%q][^/])*$";
|
||||
public static final String COMMENT_MULTILINE_END = "(?i)^([^%q]|[%q][^/])*[%q]/[%s]*$";
|
||||
public static final String COMMENT_SINGLE_LINE = "(?i)^[%s]*([%q].*||/[%q].*[%q]/[%s]*)$";
|
||||
public static final String COMMENT_MULTILINE_START = "^[%s]*/[%q]([^%q]|[%q][^/])*$";
|
||||
public static final String COMMENT_MULTILINE_END = "^([^%q]|[%q][^/])*[%q]/[%s]*$";
|
||||
public static final String COMMENT_SINGLE_LINE = "^[%s]*([%q].*||/[%q].*[%q]/[%s]*)$";
|
||||
public static final String INNER_COMMENT = "/[%q].*?[%q]/";
|
||||
|
||||
private CommandMultilinesComment() {
|
||||
|
@ -47,12 +47,12 @@ import net.sourceforge.plantuml.ugraphic.color.NoSuchColorException;
|
||||
public class CommandMultilinesFooter extends CommandMultilines<TitledDiagram> {
|
||||
|
||||
public CommandMultilinesFooter() {
|
||||
super("(?i)^(?:(left|right|center)?[%s]*)footer$");
|
||||
super("^(?:(left|right|center)?[%s]*)footer$");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPatternEnd() {
|
||||
return "(?i)^end[%s]?footer$";
|
||||
return "^end[%s]?footer$";
|
||||
}
|
||||
|
||||
public CommandExecutionResult execute(final TitledDiagram diagram, BlocLines lines) throws NoSuchColorException {
|
||||
|
@ -47,12 +47,12 @@ import net.sourceforge.plantuml.ugraphic.color.NoSuchColorException;
|
||||
public class CommandMultilinesHeader extends CommandMultilines<TitledDiagram> {
|
||||
|
||||
public CommandMultilinesHeader() {
|
||||
super("(?i)^(?:(left|right|center)?[%s]*)header$");
|
||||
super("^(?:(left|right|center)?[%s]*)header$");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPatternEnd() {
|
||||
return "(?i)^end[%s]?header$";
|
||||
return "^end[%s]?header$";
|
||||
}
|
||||
|
||||
public CommandExecutionResult execute(final TitledDiagram diagram, BlocLines lines) throws NoSuchColorException {
|
||||
|
@ -70,7 +70,7 @@ public class CommandMultilinesLegend extends CommandMultilines2<TitledDiagram> {
|
||||
|
||||
@Override
|
||||
public String getPatternEnd() {
|
||||
return "(?i)^end[%s]?legend$";
|
||||
return "^end[%s]?legend$";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -45,12 +45,12 @@ import net.sourceforge.plantuml.ugraphic.color.NoSuchColorException;
|
||||
public class CommandMultilinesTitle extends CommandMultilines<TitledDiagram> {
|
||||
|
||||
public CommandMultilinesTitle() {
|
||||
super("(?i)^title$");
|
||||
super("^title$");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPatternEnd() {
|
||||
return "(?i)^end[%s]?title$";
|
||||
return "^end[%s]?title$";
|
||||
}
|
||||
|
||||
public CommandExecutionResult execute(final TitledDiagram diagram, BlocLines lines) throws NoSuchColorException {
|
||||
|
@ -66,7 +66,7 @@ public class CommandNamespace extends SingleLineCommand2<ClassDiagram> {
|
||||
return RegexConcat.build(CommandNamespace.class.getName(), RegexLeaf.start(), //
|
||||
new RegexLeaf("namespace"), //
|
||||
RegexLeaf.spaceOneOrMore(), //
|
||||
new RegexLeaf("NAME", "([\\p{L}0-9_][-\\p{L}0-9_.:\\\\]*)"), //
|
||||
new RegexLeaf("NAME", "([%pLN_][-%pLN_.:\\\\]*)"), //
|
||||
RegexLeaf.spaceZeroOrMore(), //
|
||||
new RegexLeaf("STEREOTYPE", "(\\<\\<.*\\>\\>)?"), //
|
||||
RegexLeaf.spaceZeroOrMore(), //
|
||||
|
@ -74,7 +74,7 @@ public class CommandNamespace2 extends SingleLineCommand2<ClassDiagram> {
|
||||
new RegexLeaf("as"), //
|
||||
RegexLeaf.spaceOneOrMore(), //
|
||||
|
||||
new RegexLeaf("NAME", "([\\p{L}0-9_][-\\p{L}0-9_.:\\\\]*)"), //
|
||||
new RegexLeaf("NAME", "([%pLN_][-%pLN_.:\\\\]*)"), //
|
||||
RegexLeaf.spaceZeroOrMore(), //
|
||||
new RegexLeaf("STEREOTYPE", "(\\<\\<.*\\>\\>)?"), //
|
||||
RegexLeaf.spaceZeroOrMore(), //
|
||||
|
@ -66,7 +66,7 @@ public class CommandNamespaceEmpty extends SingleLineCommand2<ClassDiagram> {
|
||||
return RegexConcat.build(CommandNamespaceEmpty.class.getName(), RegexLeaf.start(), //
|
||||
new RegexLeaf("namespace"), //
|
||||
RegexLeaf.spaceOneOrMore(), //
|
||||
new RegexLeaf("NAME", "([\\p{L}0-9_][-\\p{L}0-9_.:\\\\]*)"), //
|
||||
new RegexLeaf("NAME", "([%pLN_][-%pLN_.:\\\\]*)"), //
|
||||
RegexLeaf.spaceZeroOrMore(), //
|
||||
new RegexLeaf("STEREOTYPE", "(\\<\\<.*\\>\\>)?"), //
|
||||
RegexLeaf.spaceZeroOrMore(), //
|
||||
|
@ -79,7 +79,7 @@ public class CommandPackage extends SingleLineCommand2<AbstractEntityDiagram> {
|
||||
RegexLeaf.spaceOneOrMore(), //
|
||||
new RegexLeaf("as"), //
|
||||
RegexLeaf.spaceOneOrMore(), //
|
||||
new RegexLeaf("AS", "([\\p{L}0-9_.]+)") //
|
||||
new RegexLeaf("AS", "([%pLN_.]+)") //
|
||||
)), //
|
||||
RegexLeaf.spaceZeroOrMore(), //
|
||||
new RegexLeaf("STEREOTYPE", "(\\<\\<.*\\>\\>)?"), //
|
||||
|
@ -70,7 +70,7 @@ public class CommandPackageEmpty extends SingleLineCommand2<AbstractEntityDiagra
|
||||
RegexLeaf.spaceOneOrMore(), //
|
||||
new RegexLeaf("as"), //
|
||||
RegexLeaf.spaceOneOrMore(), //
|
||||
new RegexLeaf("CODE", "([\\p{L}0-9_.]+)") //
|
||||
new RegexLeaf("CODE", "([%pLN_.]+)") //
|
||||
)), //
|
||||
RegexLeaf.spaceZeroOrMore(), //
|
||||
new RegexLeaf("COLOR", "(#[0-9a-fA-F]{6}|#?\\w+)?"), //
|
||||
|
@ -43,7 +43,7 @@ import net.sourceforge.plantuml.command.regex.MyPattern;
|
||||
public class CommandSkinParamMultilines extends CommandMultilinesBracket<TitledDiagram> {
|
||||
|
||||
public CommandSkinParamMultilines() {
|
||||
super("(?i)^skinparam[%s]*(?:[%s]+([\\w.]*(?:\\<\\<.*\\>\\>)?[\\w.]*))?[%s]*\\{$");
|
||||
super("^skinparam[%s]*(?:[%s]+([\\w.]*(?:\\<\\<.*\\>\\>)?[\\w.]*))?[%s]*\\{$");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -67,7 +67,7 @@ public class CommandSpriteFile extends SingleLineCommand2<TitledDiagram> {
|
||||
new RegexLeaf("sprite"), //
|
||||
RegexLeaf.spaceOneOrMore(), //
|
||||
new RegexLeaf("\\$?"), //
|
||||
new RegexLeaf("NAME", "([-\\p{L}0-9_]+)"), //
|
||||
new RegexLeaf("NAME", "([-%pLN_]+)"), //
|
||||
RegexLeaf.spaceOneOrMore(), //
|
||||
new RegexLeaf("FILE", "(.*)"), RegexLeaf.end());
|
||||
}
|
||||
|
@ -60,7 +60,7 @@ public class CommandTitle extends SingleLineCommand2<TitledDiagram> {
|
||||
new RegexLeaf("(?:[%s]*:[%s]*|[%s]+)"), //
|
||||
new RegexOr(//
|
||||
new RegexLeaf("TITLE1", "[%g](.*)[%g]"), //
|
||||
new RegexLeaf("TITLE2", "(.*[\\p{L}0-9_.].*)")), //
|
||||
new RegexLeaf("TITLE2", "(.*[%pLN_.].*)")), //
|
||||
RegexLeaf.end()); //
|
||||
}
|
||||
|
||||
|
@ -60,7 +60,6 @@ public abstract class PSystemAbstractFactory implements PSystemFactory {
|
||||
List<StringLocated> trace) {
|
||||
final ErrorUml err = new ErrorUml(ErrorUmlType.SYNTAX_ERROR, EMPTY_DESCRIPTION, 0, lineLocation);
|
||||
final PSystemError result = PSystemErrorUtils.buildV2(source, err, null, trace);
|
||||
result.setSource(source);
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -68,7 +67,6 @@ public abstract class PSystemAbstractFactory implements PSystemFactory {
|
||||
List<StringLocated> trace) {
|
||||
final ErrorUml err = new ErrorUml(ErrorUmlType.EXECUTION_ERROR, stringError, 0, lineLocation);
|
||||
final PSystemError result = PSystemErrorUtils.buildV2(source, err, null, trace);
|
||||
result.setSource(source);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -38,6 +38,7 @@ package net.sourceforge.plantuml.command;
|
||||
import net.sourceforge.plantuml.AbstractPSystem;
|
||||
import net.sourceforge.plantuml.ErrorUml;
|
||||
import net.sourceforge.plantuml.ErrorUmlType;
|
||||
import net.sourceforge.plantuml.ISkinSimple;
|
||||
import net.sourceforge.plantuml.StringLocated;
|
||||
import net.sourceforge.plantuml.core.Diagram;
|
||||
import net.sourceforge.plantuml.core.DiagramType;
|
||||
@ -56,21 +57,20 @@ public abstract class PSystemBasicFactory<P extends AbstractPSystem> extends PSy
|
||||
this(DiagramType.UML);
|
||||
}
|
||||
|
||||
public abstract P executeLine(P system, String line);
|
||||
public abstract P executeLine(UmlSource source, P system, String line);
|
||||
|
||||
public P init(String startLine) {
|
||||
return null;
|
||||
}
|
||||
public abstract P initDiagram(UmlSource source, String startLine);
|
||||
|
||||
private boolean isEmptyLine(StringLocated result) {
|
||||
return result.getTrimmed().getString().length() == 0;
|
||||
}
|
||||
|
||||
final public Diagram createSystem(UmlSource source) {
|
||||
@Override
|
||||
final public Diagram createSystem(UmlSource source, ISkinSimple skinParam) {
|
||||
source = source.removeInitialSkinparam();
|
||||
final IteratorCounter2 it = source.iterator2();
|
||||
final StringLocated startLine = it.next();
|
||||
P system = init(startLine.getString());
|
||||
P system = initDiagram(source, startLine.getString());
|
||||
boolean first = true;
|
||||
while (it.hasNext()) {
|
||||
final StringLocated s = it.next();
|
||||
@ -82,21 +82,15 @@ public abstract class PSystemBasicFactory<P extends AbstractPSystem> extends PSy
|
||||
if (source.getTotalLineCount() == 2 && source.isStartDef() == false) {
|
||||
return buildEmptyError(source, s.getLocation(), it.getTrace());
|
||||
}
|
||||
if (system != null) {
|
||||
system.setSource(source);
|
||||
}
|
||||
return system;
|
||||
}
|
||||
system = executeLine(system, s.getString());
|
||||
system = executeLine(source, system, s.getString());
|
||||
if (system == null) {
|
||||
final ErrorUml err = new ErrorUml(ErrorUmlType.SYNTAX_ERROR, "Syntax Error?", 0, s.getLocation());
|
||||
// return PSystemErrorUtils.buildV1(source, err, null);
|
||||
return PSystemErrorUtils.buildV2(source, err, null, it.getTrace());
|
||||
}
|
||||
}
|
||||
if (system != null) {
|
||||
system.setSource(source);
|
||||
}
|
||||
return system;
|
||||
}
|
||||
|
||||
|
@ -43,6 +43,7 @@ import java.util.List;
|
||||
import net.sourceforge.plantuml.AbstractPSystem;
|
||||
import net.sourceforge.plantuml.ErrorUml;
|
||||
import net.sourceforge.plantuml.ErrorUmlType;
|
||||
import net.sourceforge.plantuml.ISkinSimple;
|
||||
import net.sourceforge.plantuml.LineLocation;
|
||||
import net.sourceforge.plantuml.StringLocated;
|
||||
import net.sourceforge.plantuml.classdiagram.command.CommandHideShowByGender;
|
||||
@ -71,7 +72,8 @@ public abstract class PSystemCommandFactory extends PSystemAbstractFactory {
|
||||
super(type);
|
||||
}
|
||||
|
||||
final public Diagram createSystem(UmlSource source) {
|
||||
@Override
|
||||
final public Diagram createSystem(UmlSource source, ISkinSimple skinParam) {
|
||||
final IteratorCounter2 it = source.iterator2();
|
||||
final StringLocated startLine = it.next();
|
||||
if (StartUtils.isArobaseStartDiagram(startLine.getString()) == false) {
|
||||
@ -84,7 +86,7 @@ public abstract class PSystemCommandFactory extends PSystemAbstractFactory {
|
||||
}
|
||||
return buildEmptyError(source, startLine.getLocation(), it.getTrace());
|
||||
}
|
||||
AbstractPSystem sys = createEmptyDiagram();
|
||||
AbstractPSystem sys = createEmptyDiagram(source, skinParam);
|
||||
|
||||
while (it.hasNext()) {
|
||||
if (StartUtils.isArobaseEndDiagram(it.peek().getString())) {
|
||||
@ -104,7 +106,6 @@ public abstract class PSystemCommandFactory extends PSystemAbstractFactory {
|
||||
if (sys.isOk() == false) {
|
||||
return null;
|
||||
}
|
||||
sys.setSource(source);
|
||||
return sys;
|
||||
}
|
||||
sys = executeFewLines(sys, source, it);
|
||||
@ -112,7 +113,6 @@ public abstract class PSystemCommandFactory extends PSystemAbstractFactory {
|
||||
return sys;
|
||||
}
|
||||
}
|
||||
sys.setSource(source);
|
||||
return sys;
|
||||
|
||||
}
|
||||
@ -214,7 +214,7 @@ public abstract class PSystemCommandFactory extends PSystemAbstractFactory {
|
||||
|
||||
protected abstract List<Command> createCommands();
|
||||
|
||||
public abstract AbstractPSystem createEmptyDiagram();
|
||||
public abstract AbstractPSystem createEmptyDiagram(UmlSource source, ISkinSimple skinParam);
|
||||
|
||||
final protected void addCommonCommands1(List<Command> cmds) {
|
||||
addTitleCommands(cmds);
|
||||
|
@ -38,6 +38,7 @@ package net.sourceforge.plantuml.command;
|
||||
import net.sourceforge.plantuml.AbstractPSystem;
|
||||
import net.sourceforge.plantuml.ErrorUml;
|
||||
import net.sourceforge.plantuml.ErrorUmlType;
|
||||
import net.sourceforge.plantuml.ISkinSimple;
|
||||
import net.sourceforge.plantuml.LineLocation;
|
||||
import net.sourceforge.plantuml.StringLocated;
|
||||
import net.sourceforge.plantuml.core.Diagram;
|
||||
@ -49,13 +50,14 @@ import net.sourceforge.plantuml.version.IteratorCounter2;
|
||||
|
||||
public abstract class PSystemSingleLineFactory extends PSystemAbstractFactory {
|
||||
|
||||
protected abstract AbstractPSystem executeLine(String line);
|
||||
protected abstract AbstractPSystem executeLine(UmlSource source, String line);
|
||||
|
||||
protected PSystemSingleLineFactory() {
|
||||
super(DiagramType.UML);
|
||||
}
|
||||
|
||||
final public Diagram createSystem(UmlSource source) {
|
||||
@Override
|
||||
final public Diagram createSystem(UmlSource source, ISkinSimple skinParam) {
|
||||
|
||||
if (source.getTotalLineCount() != 3) {
|
||||
return null;
|
||||
@ -78,13 +80,12 @@ public abstract class PSystemSingleLineFactory extends PSystemAbstractFactory {
|
||||
if (StartUtils.isArobaseEndDiagram(s.getString())) {
|
||||
return buildEmptyError(source, s.getLocation(), it.getTrace());
|
||||
}
|
||||
final AbstractPSystem sys = executeLine(s.getString());
|
||||
final AbstractPSystem sys = executeLine(source, s.getString());
|
||||
if (sys == null) {
|
||||
final ErrorUml err = new ErrorUml(ErrorUmlType.SYNTAX_ERROR, "Syntax Error?", 0, s.getLocation());
|
||||
// return PSystemErrorUtils.buildV1(source, err, null);
|
||||
return PSystemErrorUtils.buildV2(source, err, null, it.getTrace());
|
||||
}
|
||||
sys.setSource(source);
|
||||
return sys;
|
||||
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user