1
0
mirror of https://github.com/octoleo/plantuml.git synced 2024-12-23 19:39:10 +00:00

Merge pull request #505 from matthew16550/seed

Simplify passing around of seed value
This commit is contained in:
arnaudroques 2021-03-23 14:16:20 +01:00 committed by GitHub
commit a2c22941f2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
38 changed files with 80 additions and 73 deletions

View File

@ -143,7 +143,7 @@ public abstract class AbstractPSystem implements Diagram {
throws IOException { throws IOException {
final long now = System.currentTimeMillis(); final long now = System.currentTimeMillis();
try { try {
return exportDiagramNow(os, index, fileFormatOption, seed()); return exportDiagramNow(os, index, fileFormatOption);
} finally { } finally {
if (OptionFlags.getInstance().isEnableStats()) { if (OptionFlags.getInstance().isEnableStats()) {
StatsUtilsIncrement.onceMoreGenerate(System.currentTimeMillis() - now, getClass(), StatsUtilsIncrement.onceMoreGenerate(System.currentTimeMillis() - now, getClass(),
@ -160,8 +160,8 @@ public abstract class AbstractPSystem implements Diagram {
return scale; return scale;
} }
protected abstract ImageData exportDiagramNow(OutputStream os, int index, FileFormatOption fileFormatOption, protected abstract ImageData exportDiagramNow(OutputStream os, int index, FileFormatOption fileFormatOption
long seed) throws IOException; ) throws IOException;
public ClockwiseTopRightBottomLeft getDefaultMargins() { public ClockwiseTopRightBottomLeft getDefaultMargins() {
return ClockwiseTopRightBottomLeft.same(0); return ClockwiseTopRightBottomLeft.same(0);

View File

@ -102,7 +102,7 @@ public class NewpagedDiagram extends AbstractPSystem {
} }
@Override @Override
final protected ImageData exportDiagramNow(OutputStream os, int num, FileFormatOption fileFormat, long seed) final protected ImageData exportDiagramNow(OutputStream os, int num, FileFormatOption fileFormat)
throws IOException { throws IOException {
return diagrams.get(num).exportDiagram(os, 0, fileFormat); return diagrams.get(num).exportDiagram(os, 0, fileFormat);
} }

View File

@ -47,14 +47,15 @@ import static net.sourceforge.plantuml.ugraphic.ImageBuilder.plainImageBuilder;
public abstract class PlainDiagram extends AbstractPSystem { public abstract class PlainDiagram extends AbstractPSystem {
@Override @Override
protected ImageData exportDiagramNow(OutputStream os, int index, FileFormatOption fileFormatOption, long seed) protected ImageData exportDiagramNow(OutputStream os, int index, FileFormatOption fileFormatOption)
throws IOException { throws IOException {
final UDrawable drawable = getRootDrawable(fileFormatOption); final UDrawable drawable = getRootDrawable(fileFormatOption);
final ImageBuilder builder = plainImageBuilder(drawable, fileFormatOption, seed) final ImageBuilder builder = plainImageBuilder(drawable, fileFormatOption)
.margin(getDefaultMargins()) .margin(getDefaultMargins())
.metadata(fileFormatOption.isWithMetadata() ? getMetadata() : null); .metadata(fileFormatOption.isWithMetadata() ? getMetadata() : null)
.seed(seed());
return adjustImageBuilder(builder).write(os); return adjustImageBuilder(builder).write(os);
} }

View File

@ -146,7 +146,7 @@ public class SourceStringReader {
public DiagramDescription outputImage(OutputStream os, int numImage, FileFormatOption fileFormatOption) public DiagramDescription outputImage(OutputStream os, int numImage, FileFormatOption fileFormatOption)
throws IOException { throws IOException {
if (blocks.size() == 0) { if (blocks.size() == 0) {
noStartumlFound(os, fileFormatOption, 42); noStartumlFound(os, fileFormatOption);
return null; return null;
} }
for (BlockUml b : blocks) { for (BlockUml b : blocks) {
@ -222,11 +222,11 @@ public class SourceStringReader {
} }
public ImageData noStartumlFound(OutputStream os, FileFormatOption fileFormatOption, long seed) throws IOException { public ImageData noStartumlFound(OutputStream os, FileFormatOption fileFormatOption) throws IOException {
final TextBlockBackcolored error = GraphicStrings.createForError(Arrays.asList("No @startuml/@enduml found"), final TextBlockBackcolored error = GraphicStrings.createForError(Arrays.asList("No @startuml/@enduml found"),
fileFormatOption.isUseRedForError()); fileFormatOption.isUseRedForError());
return plainImageBuilder(error, fileFormatOption, seed) return plainImageBuilder(error, fileFormatOption)
.write(os); .write(os);
} }

View File

@ -132,7 +132,7 @@ public abstract class UmlDiagram extends TitledDiagram implements Diagram, Annot
} }
@Override @Override
final protected ImageData exportDiagramNow(OutputStream os, int index, FileFormatOption fileFormatOption, long seed) final protected ImageData exportDiagramNow(OutputStream os, int index, FileFormatOption fileFormatOption)
throws IOException { throws IOException {
final HColor hover = getSkinParam().hoverPathColor(); final HColor hover = getSkinParam().hoverPathColor();
@ -155,20 +155,20 @@ public abstract class UmlDiagram extends TitledDiagram implements Diagram, Annot
return imageData; return imageData;
} catch (NoStyleAvailableException e) { } catch (NoStyleAvailableException e) {
// e.printStackTrace(); // e.printStackTrace();
exportDiagramError(os, e, fileFormatOption, seed, null); exportDiagramError(os, e, fileFormatOption, null);
} catch (UnparsableGraphvizException e) { } catch (UnparsableGraphvizException e) {
e.printStackTrace(); e.printStackTrace();
exportDiagramError(os, e.getCause(), fileFormatOption, seed, e.getGraphvizVersion()); exportDiagramError(os, e.getCause(), fileFormatOption, e.getGraphvizVersion());
} catch (Throwable e) { } catch (Throwable e) {
//e.printStackTrace(); //e.printStackTrace();
exportDiagramError(os, e, fileFormatOption, seed, null); exportDiagramError(os, e, fileFormatOption, null);
} }
return ImageDataSimple.error(); return ImageDataSimple.error();
} }
private void exportDiagramError(OutputStream os, Throwable exception, FileFormatOption fileFormat, long seed, private void exportDiagramError(OutputStream os, Throwable exception, FileFormatOption fileFormat,
String graphvizVersion) throws IOException { String graphvizVersion) throws IOException {
exportDiagramError(os, exception, fileFormat, seed, getMetadata(), getFlashData(), exportDiagramError(os, exception, fileFormat, seed(), getMetadata(), getFlashData(),
getFailureText1(exception, graphvizVersion, getFlashData())); getFailureText1(exception, graphvizVersion, getFlashData()));
} }
@ -208,8 +208,9 @@ public abstract class UmlDiagram extends TitledDiagram implements Diagram, Annot
} }
}; };
plainImageBuilder(drawable, fileFormat, seed) plainImageBuilder(drawable, fileFormat)
.metadata(metadata) .metadata(metadata)
.seed(seed)
.write(os); .write(os);
} }

View File

@ -78,7 +78,7 @@ public class PSystemXearth extends AbstractPSystem {
} }
@Override @Override
final protected ImageData exportDiagramNow(OutputStream os, int num, FileFormatOption fileFormat, long seed) final protected ImageData exportDiagramNow(OutputStream os, int num, FileFormatOption fileFormat)
throws IOException { throws IOException {
synchronized (PSystemXearth.class) { synchronized (PSystemXearth.class) {
final ACearth earth = new ACearth(markers); final ACearth earth = new ACearth(markers);

View File

@ -205,7 +205,7 @@ public class ActivityDiagram3 extends UmlDiagram {
result = CompressionXorYBuilder.build(CompressionMode.ON_Y, result, stringBounder); result = CompressionXorYBuilder.build(CompressionMode.ON_Y, result, stringBounder);
result = new TextBlockRecentred(result); result = new TextBlockRecentred(result);
return styledImageBuilder(this, result, index, fileFormatOption, seed()) return styledImageBuilder(this, result, index, fileFormatOption)
.write(os); .write(os);
} }

View File

@ -78,7 +78,7 @@ public class BoardDiagram extends UmlDiagram {
protected ImageData exportDiagramInternal(OutputStream os, int index, FileFormatOption fileFormatOption) protected ImageData exportDiagramInternal(OutputStream os, int index, FileFormatOption fileFormatOption)
throws IOException { throws IOException {
return styledImageBuilder(this, getTextBlock(), index, fileFormatOption, seed()) return styledImageBuilder(this, getTextBlock(), index, fileFormatOption)
.write(os); .write(os);
} }

View File

@ -82,7 +82,7 @@ public class BpmDiagram extends UmlDiagram {
protected ImageData exportDiagramInternal(OutputStream os, int index, FileFormatOption fileFormatOption) protected ImageData exportDiagramInternal(OutputStream os, int index, FileFormatOption fileFormatOption)
throws IOException { throws IOException {
return styledImageBuilder(this, getUDrawable(), index, fileFormatOption, seed()) return styledImageBuilder(this, getUDrawable(), index, fileFormatOption)
.annotations(false) .annotations(false)
.write(os); .write(os);
} }

View File

@ -198,7 +198,7 @@ public class ClassDiagram extends AbstractClassOrObjectDiagram {
final RowLayout rawLayout = getRawLayout(i); final RowLayout rawLayout = getRawLayout(i);
fullLayout.addRowLayout(rawLayout); fullLayout.addRowLayout(rawLayout);
} }
return styledImageBuilder(this, fullLayout, index, fileFormatOption, seed()) return styledImageBuilder(this, fullLayout, index, fileFormatOption)
.annotations(false) // Backwards compatibility - this only applies when "layout_new_line" is used .annotations(false) // Backwards compatibility - this only applies when "layout_new_line" is used
.write(os); .write(os);
} }

View File

@ -68,7 +68,7 @@ public class PSystemDot extends AbstractPSystem {
} }
@Override @Override
final protected ImageData exportDiagramNow(OutputStream os, int num, FileFormatOption fileFormat, long seed) final protected ImageData exportDiagramNow(OutputStream os, int num, FileFormatOption fileFormat)
throws IOException { throws IOException {
final Graphviz graphviz = GraphvizUtils.createForSystemDot(null, data, final Graphviz graphviz = GraphvizUtils.createForSystemDot(null, data,
StringUtils.goLowerCase(fileFormat.getFileFormat().name())); StringUtils.goLowerCase(fileFormat.getFileFormat().name()));

View File

@ -88,7 +88,7 @@ public class PSystemDitaa extends AbstractPSystem {
} }
@Override @Override
final protected ImageData exportDiagramNow(OutputStream os, int num, FileFormatOption fileFormat, long seed) final protected ImageData exportDiagramNow(OutputStream os, int num, FileFormatOption fileFormat)
throws IOException { throws IOException {
if (fileFormat.getFileFormat() == FileFormat.ATXT) { if (fileFormat.getFileFormat() == FileFormat.ATXT) {
os.write(getSource().getPlainString().getBytes()); os.write(getSource().getPlainString().getBytes());

View File

@ -53,7 +53,7 @@ public class PSystemPath extends AbstractPSystem {
} }
@Override @Override
final protected ImageData exportDiagramNow(OutputStream os, int num, FileFormatOption fileFormat, long seed) final protected ImageData exportDiagramNow(OutputStream os, int num, FileFormatOption fileFormat)
throws IOException { throws IOException {
return path.writeImage(os); return path.writeImage(os);
} }

View File

@ -222,7 +222,7 @@ public abstract class PSystemError extends PlainDiagram {
} }
@Override @Override
final protected ImageData exportDiagramNow(OutputStream os, int num, FileFormatOption fileFormat, long seed) final protected ImageData exportDiagramNow(OutputStream os, int num, FileFormatOption fileFormat)
throws IOException { throws IOException {
if (fileFormat.getFileFormat() == FileFormat.ATXT || fileFormat.getFileFormat() == FileFormat.UTXT) { if (fileFormat.getFileFormat() == FileFormat.ATXT || fileFormat.getFileFormat() == FileFormat.UTXT) {
final UGraphicTxt ugt = new UGraphicTxt(); final UGraphicTxt ugt = new UGraphicTxt();
@ -232,7 +232,7 @@ public abstract class PSystemError extends PlainDiagram {
return new ImageDataSimple(1, 1); return new ImageDataSimple(1, 1);
} }
return super.exportDiagramNow(os, num, fileFormat, seed); return super.exportDiagramNow(os, num, fileFormat);
} }
@Override @Override

View File

@ -73,7 +73,7 @@ public class GitDiagram extends UmlDiagram {
protected ImageData exportDiagramInternal(OutputStream os, int index, FileFormatOption fileFormatOption) protected ImageData exportDiagramInternal(OutputStream os, int index, FileFormatOption fileFormatOption)
throws IOException { throws IOException {
return styledImageBuilder(this, getTextBlock(), index, fileFormatOption, 0) return styledImageBuilder(this, getTextBlock(), index, fileFormatOption)
.write(os); .write(os);
} }

View File

@ -78,7 +78,7 @@ public class Help extends UmlDiagram {
final Sheet sheet = Parser.build(fontConfiguration, HorizontalAlignment.LEFT, getSkinParam(), CreoleMode.FULL) final Sheet sheet = Parser.build(fontConfiguration, HorizontalAlignment.LEFT, getSkinParam(), CreoleMode.FULL)
.createSheet(display); .createSheet(display);
final SheetBlock1 sheetBlock = new SheetBlock1(sheet, LineBreakStrategy.NONE, 0); final SheetBlock1 sheetBlock = new SheetBlock1(sheet, LineBreakStrategy.NONE, 0);
return styledImageBuilder(this, sheetBlock, 1, fileFormat, 0) return styledImageBuilder(this, sheetBlock, 1, fileFormat)
.annotations(false) .annotations(false)
.write(os); .write(os);
} }

View File

@ -64,7 +64,7 @@ public class PSystemJcckit extends AbstractPSystem {
} }
@Override @Override
final protected ImageData exportDiagramNow(OutputStream os, int num, FileFormatOption fileFormat, long seed) final protected ImageData exportDiagramNow(OutputStream os, int num, FileFormatOption fileFormat)
throws IOException { throws IOException {
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

View File

@ -86,10 +86,10 @@ public class JsonDiagram extends TitledDiagram {
} }
@Override @Override
protected ImageData exportDiagramNow(OutputStream os, int index, FileFormatOption fileFormatOption, long seed) protected ImageData exportDiagramNow(OutputStream os, int index, FileFormatOption fileFormatOption)
throws IOException { throws IOException {
return styledImageBuilder(this, getTextBlock(), index, fileFormatOption, 0) return styledImageBuilder(this, getTextBlock(), index, fileFormatOption)
.write(os); .write(os);
} }

View File

@ -61,7 +61,7 @@ public class PSystemLogo extends AbstractPSystem {
} }
@Override @Override
final protected ImageData exportDiagramNow(OutputStream os, int num, FileFormatOption fileFormat, long seed) final protected ImageData exportDiagramNow(OutputStream os, int num, FileFormatOption fileFormat)
throws IOException { throws IOException {
final int width = 640; final int width = 640;
final int height = 480; final int height = 480;

View File

@ -63,7 +63,7 @@ public class PSystemLatex extends AbstractPSystem {
} }
@Override @Override
final protected ImageData exportDiagramNow(OutputStream os, int num, FileFormatOption fileFormat, long seed) final protected ImageData exportDiagramNow(OutputStream os, int num, FileFormatOption fileFormat)
throws IOException { throws IOException {
final ScientificEquationSafe asciiMath = ScientificEquationSafe.fromLatex(latex); final ScientificEquationSafe asciiMath = ScientificEquationSafe.fromLatex(latex);
return asciiMath.export(os, fileFormat, scale, color, backColor); return asciiMath.export(os, fileFormat, scale, color, backColor);

View File

@ -63,7 +63,7 @@ public class PSystemMath extends AbstractPSystem {
} }
@Override @Override
final protected ImageData exportDiagramNow(OutputStream os, int num, FileFormatOption fileFormat, long seed) final protected ImageData exportDiagramNow(OutputStream os, int num, FileFormatOption fileFormat)
throws IOException { throws IOException {
final ScientificEquationSafe asciiMath = ScientificEquationSafe.fromAsciiMath(math); final ScientificEquationSafe asciiMath = ScientificEquationSafe.fromAsciiMath(math);
return asciiMath.export(os, fileFormat, scale, color, backColor); return asciiMath.export(os, fileFormat, scale, color, backColor);

View File

@ -101,7 +101,7 @@ public class ScientificEquationSafe {
printTrace(e); printTrace(e);
final ByteArrayOutputStream baos = new ByteArrayOutputStream(); final ByteArrayOutputStream baos = new ByteArrayOutputStream();
try { try {
dimSvg = plainImageBuilder(getRollback(), new FileFormatOption(FileFormat.SVG), 42) dimSvg = plainImageBuilder(getRollback(), new FileFormatOption(FileFormat.SVG))
.write(baos); .write(baos);
} catch (IOException e1) { } catch (IOException e1) {
return null; return null;

View File

@ -84,7 +84,7 @@ public class MindMapDiagram extends UmlDiagram {
protected ImageData exportDiagramInternal(OutputStream os, int index, FileFormatOption fileFormatOption) protected ImageData exportDiagramInternal(OutputStream os, int index, FileFormatOption fileFormatOption)
throws IOException { throws IOException {
return styledImageBuilder(this, getTextBlock(), index, fileFormatOption, seed()) return styledImageBuilder(this, getTextBlock(), index, fileFormatOption)
.write(os); .write(os);
} }

View File

@ -215,7 +215,7 @@ public class NwDiagram extends UmlDiagram {
protected ImageData exportDiagramInternal(OutputStream os, int index, FileFormatOption fileFormatOption) protected ImageData exportDiagramInternal(OutputStream os, int index, FileFormatOption fileFormatOption)
throws IOException { throws IOException {
return styledImageBuilder(this, getTextBlock(), index, fileFormatOption, 0) return styledImageBuilder(this, getTextBlock(), index, fileFormatOption)
.write(os); .write(os);
} }

View File

@ -189,7 +189,7 @@ public class PicoWebServer implements Runnable {
system = PSystemErrorUtils.buildV2(null, system = PSystemErrorUtils.buildV2(null,
new ErrorUml(SYNTAX_ERROR, "No @startuml/@enduml found", 0, new LineLocationImpl("", null)), null, new ErrorUml(SYNTAX_ERROR, "No @startuml/@enduml found", 0, new LineLocationImpl("", null)), null,
Collections.<StringLocated>emptyList()); Collections.<StringLocated>emptyList());
imageData = ssr.noStartumlFound(os, option.getFileFormatOption(), 42); imageData = ssr.noStartumlFound(os, option.getFileFormatOption());
} else { } else {
system = ssr.getBlocks().get(0).getDiagram(); system = ssr.getBlocks().get(0).getDiagram();
imageData = system.exportDiagram(os, 0, option.getFileFormatOption()); imageData = system.exportDiagram(os, 0, option.getFileFormatOption());

View File

@ -163,10 +163,10 @@ public class GanttDiagram extends TitledDiagram implements ToTaskDraw, WithSprit
} }
@Override @Override
protected ImageData exportDiagramNow(OutputStream os, int index, FileFormatOption fileFormatOption, long seed) protected ImageData exportDiagramNow(OutputStream os, int index, FileFormatOption fileFormatOption)
throws IOException { throws IOException {
final StringBounder stringBounder = fileFormatOption.getDefaultStringBounder(getSkinParam()); final StringBounder stringBounder = fileFormatOption.getDefaultStringBounder(getSkinParam());
return styledImageBuilder(this, getTextBlock(stringBounder), index, fileFormatOption, seed()) return styledImageBuilder(this, getTextBlock(stringBounder), index, fileFormatOption)
.write(os); .write(os);
} }

View File

@ -112,17 +112,17 @@ public class PSystemSalt extends TitledDiagram implements WithSprite {
} }
@Override @Override
final protected ImageData exportDiagramNow(OutputStream os, int index, FileFormatOption fileFormatOption, long seed) final protected ImageData exportDiagramNow(OutputStream os, int index, FileFormatOption fileFormatOption)
throws IOException { throws IOException {
try { try {
final Element salt = createElement(manageSprite()); final Element salt = createElement(manageSprite());
final StringBounder stringBounder = fileFormatOption.getDefaultStringBounder(getSkinParam()); final StringBounder stringBounder = fileFormatOption.getDefaultStringBounder(getSkinParam());
final Dimension2D size = salt.getPreferredDimension(stringBounder, 0, 0); final Dimension2D size = salt.getPreferredDimension(stringBounder, 0, 0);
return styledImageBuilder(this, getTextBlock(salt, size), index, fileFormatOption, seed()) return styledImageBuilder(this, getTextBlock(salt, size), index, fileFormatOption)
.write(os); .write(os);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
UmlDiagram.exportDiagramError(os, e, fileFormatOption, seed, getMetadata(), "none", UmlDiagram.exportDiagramError(os, e, fileFormatOption, seed(), getMetadata(), "none",
new ArrayList<String>()); new ArrayList<String>());
return ImageDataSimple.error(); return ImageDataSimple.error();
} }

View File

@ -450,7 +450,7 @@ public class CucaDiagramFileMakerSmetana implements CucaDiagramFileMaker {
// imageBuilder.setUDrawable(new Drawing(new YMirror(dim.getHeight()))); // imageBuilder.setUDrawable(new Drawing(new YMirror(dim.getHeight())));
final TextBlock drawable = new Drawing(new YMirror(minMax.getMaxY()), minMax); final TextBlock drawable = new Drawing(new YMirror(minMax.getMaxY()), minMax);
return styledImageBuilder(diagram, drawable, 1, fileFormatOption, diagram.seed()) return styledImageBuilder(diagram, drawable, 1, fileFormatOption)
.write(os); .write(os);
} catch (Throwable e) { } catch (Throwable e) {
SmetanaDebug.printMe(); SmetanaDebug.printMe();

View File

@ -220,7 +220,7 @@ public class SequenceDiagramFileMakerPuma2 implements FileMaker {
} }
}; };
return styledImageBuilder(diagram, drawable, index, fileFormatOption, diagram.seed()) return styledImageBuilder(diagram, drawable, index, fileFormatOption)
.annotations(false) // they are managed above .annotations(false) // they are managed above
.write(os); .write(os);
} }

View File

@ -139,7 +139,7 @@ public class SequenceDiagramFileMakerTeoz implements FileMaker {
if (this.index != index) { if (this.index != index) {
throw new IllegalStateException(); throw new IllegalStateException();
} }
return styledImageBuilder(diagram, new Foo(index), index, fileFormatOption, diagram.seed()) return styledImageBuilder(diagram, new Foo(index), index, fileFormatOption)
.annotations(false) // they are managed in drawInternal() .annotations(false) // they are managed in drawInternal()
.write(os); .write(os);
} }

View File

@ -74,7 +74,7 @@ public class ListSpriteDiagram extends UmlDiagram {
protected ImageData exportDiagramInternal(OutputStream os, int index, FileFormatOption fileFormatOption) protected ImageData exportDiagramInternal(OutputStream os, int index, FileFormatOption fileFormatOption)
throws IOException { throws IOException {
return styledImageBuilder(this, getTable(), index, fileFormatOption, seed()) return styledImageBuilder(this, getTable(), index, fileFormatOption)
.annotations(false) .annotations(false)
.write(os); .write(os);
} }

View File

@ -84,7 +84,7 @@ public class StdlibDiagram extends UmlDiagram {
protected ImageData exportDiagramInternal(OutputStream os, int index, FileFormatOption fileFormatOption) protected ImageData exportDiagramInternal(OutputStream os, int index, FileFormatOption fileFormatOption)
throws IOException { throws IOException {
return styledImageBuilder(this, getTable(), index, fileFormatOption, seed()) return styledImageBuilder(this, getTable(), index, fileFormatOption)
.annotations(false) .annotations(false)
.write(os); .write(os);
} }

View File

@ -49,7 +49,7 @@ public class PSystemSudoku extends AbstractPSystem {
final private ISudoku sudoku; final private ISudoku sudoku;
@Override @Override
final protected ImageData exportDiagramNow(OutputStream os, int num, FileFormatOption fileFormat, long seed) final protected ImageData exportDiagramNow(OutputStream os, int num, FileFormatOption fileFormat)
throws IOException { throws IOException {
final GraphicsSudoku sud = new GraphicsSudoku(sudoku); final GraphicsSudoku sud = new GraphicsSudoku(sudoku);
if (fileFormat.getFileFormat() == FileFormat.EPS) { if (fileFormat.getFileFormat() == FileFormat.EPS) {

View File

@ -120,7 +120,7 @@ public final class CucaDiagramFileMakerSvek implements CucaDiagramFileMaker {
// Sorry about this hack. There is a side effect in SvekResult::calculateDimension() // Sorry about this hack. There is a side effect in SvekResult::calculateDimension()
result.calculateDimension(stringBounder); // Ensure text near the margins is not cut off result.calculateDimension(stringBounder); // Ensure text near the margins is not cut off
return styledImageBuilder(diagram, result, 1, fileFormatOption, diagram.seed()) return styledImageBuilder(diagram, result, 1, fileFormatOption)
.annotations(false) // backwards compatibility (AnnotatedWorker is used above) .annotations(false) // backwards compatibility (AnnotatedWorker is used above)
.status(result instanceof GraphvizCrash ? 503 : 0) .status(result instanceof GraphvizCrash ? 503 : 0)
.warningOrError(warningOrError) .warningOrError(warningOrError)

View File

@ -98,7 +98,7 @@ public class TimingDiagram extends UmlDiagram implements Clocks {
protected ImageData exportDiagramInternal(OutputStream os, int index, FileFormatOption fileFormatOption) protected ImageData exportDiagramInternal(OutputStream os, int index, FileFormatOption fileFormatOption)
throws IOException { throws IOException {
return styledImageBuilder(this, getTextBlock(), index, fileFormatOption, seed()) return styledImageBuilder(this, getTextBlock(), index, fileFormatOption)
.write(os); .write(os);
} }

View File

@ -111,36 +111,36 @@ public class ImageBuilder {
private final TitledDiagram titledDiagram; private final TitledDiagram titledDiagram;
private UDrawable udrawable; private UDrawable udrawable;
private final FileFormatOption fileFormatOption; private final FileFormatOption fileFormatOption;
private final long seed; private long seed = 42;
private int status = 0; private int status = 0;
private String metadata; private String metadata;
private boolean randomPixel; private boolean randomPixel;
private String warningOrError; private String warningOrError;
public static ImageBuilder plainImageBuilder(UDrawable drawable, FileFormatOption fileFormatOption, long seed) { public static ImageBuilder plainImageBuilder(UDrawable drawable, FileFormatOption fileFormatOption) {
return new ImageBuilder(drawable, null, fileFormatOption, seed, new ImageParameter()); return new ImageBuilder(drawable, null, fileFormatOption, new ImageParameter());
} }
public static ImageBuilder plainPngBuilder(UDrawable drawable) { public static ImageBuilder plainPngBuilder(UDrawable drawable) {
return plainImageBuilder(drawable, new FileFormatOption(FileFormat.PNG), 42); return plainImageBuilder(drawable, new FileFormatOption(FileFormat.PNG));
} }
// TODO do something with "index" // TODO do something with "index"
public static ImageBuilder styledImageBuilder(TitledDiagram diagram, UDrawable drawable, int index, public static ImageBuilder styledImageBuilder(TitledDiagram diagram, UDrawable drawable, int index,
FileFormatOption fileFormatOption, long seed) { FileFormatOption fileFormatOption) {
return new ImageBuilder(drawable, diagram, fileFormatOption, seed, new ImageParameter(diagram)) return new ImageBuilder(drawable, diagram, fileFormatOption, new ImageParameter(diagram))
.annotations(true) .annotations(true)
.backcolor(getBackgroundColor(diagram)) .backcolor(getBackgroundColor(diagram))
.margin(calculateDiagramMargin(diagram)) .margin(calculateDiagramMargin(diagram))
.metadata(fileFormatOption.isWithMetadata() ? diagram.getMetadata() : null) .metadata(fileFormatOption.isWithMetadata() ? diagram.getMetadata() : null)
.seed(diagram.seed())
.warningOrError(diagram.getWarningOrError()); .warningOrError(diagram.getWarningOrError());
} }
private ImageBuilder(UDrawable drawable, TitledDiagram titledDiagram, FileFormatOption fileFormatOption, long seed, ImageParameter param) { private ImageBuilder(UDrawable drawable, TitledDiagram titledDiagram, FileFormatOption fileFormatOption, ImageParameter param) {
this.udrawable = drawable; this.udrawable = drawable;
this.titledDiagram = titledDiagram; this.titledDiagram = titledDiagram;
this.fileFormatOption = fileFormatOption; this.fileFormatOption = fileFormatOption;
this.seed = seed;
this.param = param; this.param = param;
if (drawable instanceof TextBlockBackcolored) { if (drawable instanceof TextBlockBackcolored) {
@ -180,6 +180,11 @@ public class ImageBuilder {
return this; return this;
} }
public ImageBuilder seed(long seed) {
this.seed = seed;
return this;
}
public ImageBuilder status(int status) { public ImageBuilder status(int status) {
this.status = status; this.status = status;
return this; return this;
@ -198,7 +203,7 @@ public class ImageBuilder {
final AnnotatedWorker annotatedWorker = new AnnotatedWorker(titledDiagram, skinParam, stringBounder); final AnnotatedWorker annotatedWorker = new AnnotatedWorker(titledDiagram, skinParam, stringBounder);
udrawable = annotatedWorker.addAdd((TextBlock) udrawable); udrawable = annotatedWorker.addAdd((TextBlock) udrawable);
} }
final ImageData imageData = writeImageTOBEMOVED(fileFormatOption, seed, os); final ImageData imageData = writeImageTOBEMOVED(fileFormatOption, os);
((ImageDataAbstract) imageData).setStatus(status); ((ImageDataAbstract) imageData).setStatus(status);
return imageData; return imageData;
} }
@ -210,11 +215,11 @@ public class ImageBuilder {
} }
} }
public ImageData writeImageTOBEMOVED(long seed, OutputStream os) throws IOException { public ImageData writeImageTOBEMOVED(OutputStream os) throws IOException {
return writeImageTOBEMOVED(fileFormatOption, seed, os); return writeImageTOBEMOVED(fileFormatOption, os);
} }
public ImageData writeImageTOBEMOVED(FileFormatOption fileFormatOption, long seed, OutputStream os) public ImageData writeImageTOBEMOVED(FileFormatOption fileFormatOption, OutputStream os)
throws IOException { throws IOException {
final FileFormat fileFormat = fileFormatOption.getFileFormat(); final FileFormat fileFormat = fileFormatOption.getFileFormat();
if (fileFormat == FileFormat.MJPEG) { if (fileFormat == FileFormat.MJPEG) {
@ -222,10 +227,10 @@ public class ImageBuilder {
} else if (fileFormat == FileFormat.ANIMATED_GIF) { } else if (fileFormat == FileFormat.ANIMATED_GIF) {
return writeImageAnimatedGif(os, fileFormatOption.getDefaultStringBounder(param.getSvgCharSizeHack())); return writeImageAnimatedGif(os, fileFormatOption.getDefaultStringBounder(param.getSvgCharSizeHack()));
} }
return writeImageInternal(fileFormatOption, seed, os, param.getAnimation()); return writeImageInternal(fileFormatOption, os, param.getAnimation());
} }
private ImageData writeImageInternal(FileFormatOption fileFormatOption, long seed, OutputStream os, private ImageData writeImageInternal(FileFormatOption fileFormatOption, OutputStream os,
Animation animationArg) throws IOException { Animation animationArg) throws IOException {
Dimension2D dim = getFinalDimension(fileFormatOption.getDefaultStringBounder(param.getSvgCharSizeHack())); Dimension2D dim = getFinalDimension(fileFormatOption.getDefaultStringBounder(param.getSvgCharSizeHack()));
double dx = 0; double dx = 0;
@ -238,7 +243,7 @@ public class ImageBuilder {
dy = -minmax.getMinY(); dy = -minmax.getMinY();
} }
final UGraphic2 ug = createUGraphic(fileFormatOption, seed, dim, animationArg, dx, dy); final UGraphic2 ug = createUGraphic(fileFormatOption, dim, animationArg, dx, dy);
UGraphic ug2 = ug; UGraphic ug2 = ug;
final UStroke borderStroke = param.getBorderStroke(); final UStroke borderStroke = param.getBorderStroke();
@ -361,7 +366,7 @@ public class ImageBuilder {
private Image getAviImage(AffineTransformation affineTransform) throws IOException { private Image getAviImage(AffineTransformation affineTransform) throws IOException {
final ByteArrayOutputStream baos = new ByteArrayOutputStream(); final ByteArrayOutputStream baos = new ByteArrayOutputStream();
writeImageInternal(new FileFormatOption(FileFormat.PNG), 42, baos, Animation.singleton(affineTransform)); writeImageInternal(new FileFormatOption(FileFormat.PNG), baos, Animation.singleton(affineTransform));
baos.close(); baos.close();
final ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); final ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
@ -370,7 +375,7 @@ public class ImageBuilder {
return im; return im;
} }
private UGraphic2 createUGraphic(FileFormatOption option, long seed, final Dimension2D dim, Animation animationArg, private UGraphic2 createUGraphic(FileFormatOption option, final Dimension2D dim, Animation animationArg,
double dx, double dy) { double dx, double dy) {
final ColorMapper colorMapper = param.getColorMapper(); final ColorMapper colorMapper = param.getColorMapper();
final double scaleFactor = (param.getScale() == null ? 1 final double scaleFactor = (param.getScale() == null ? 1
@ -382,7 +387,7 @@ public class ImageBuilder {
option.getWatermark()); option.getWatermark());
case SVG: case SVG:
return createUGraphicSVG(colorMapper, scaleFactor, dim, backcolor, option.getSvgLinkTarget(), return createUGraphicSVG(colorMapper, scaleFactor, dim, backcolor, option.getSvgLinkTarget(),
option.getHoverColor(), seed, option.getPreserveAspectRatio(), param.getlengthAdjust()); option.getHoverColor(), option.getPreserveAspectRatio(), param.getlengthAdjust());
case EPS: case EPS:
return new UGraphicEps(colorMapper, EpsStrategy.getDefault2()); return new UGraphicEps(colorMapper, EpsStrategy.getDefault2());
case EPS_TEXT: case EPS_TEXT:
@ -408,7 +413,7 @@ public class ImageBuilder {
} }
private UGraphic2 createUGraphicSVG(ColorMapper colorMapper, double scaleFactor, Dimension2D dim, private UGraphic2 createUGraphicSVG(ColorMapper colorMapper, double scaleFactor, Dimension2D dim,
final HColor suggested, String svgLinkTarget, String hover, long seed, String preserveAspectRatio, final HColor suggested, String svgLinkTarget, String hover, String preserveAspectRatio,
LengthAdjust lengthAdjust) { LengthAdjust lengthAdjust) {
HColor backColor = HColorUtils.WHITE; HColor backColor = HColorUtils.WHITE;
if (suggested instanceof HColorSimple) { if (suggested instanceof HColorSimple) {

View File

@ -77,7 +77,7 @@ public class WBSDiagram extends UmlDiagram {
protected ImageData exportDiagramInternal(OutputStream os, int index, FileFormatOption fileFormatOption) protected ImageData exportDiagramInternal(OutputStream os, int index, FileFormatOption fileFormatOption)
throws IOException { throws IOException {
return styledImageBuilder(this, getTextBlock(), index, fileFormatOption, seed()) return styledImageBuilder(this, getTextBlock(), index, fileFormatOption)
.write(os); .write(os);
} }

View File

@ -80,7 +80,7 @@ public class WireDiagram extends UmlDiagram {
protected ImageData exportDiagramInternal(OutputStream os, int index, FileFormatOption fileFormatOption) protected ImageData exportDiagramInternal(OutputStream os, int index, FileFormatOption fileFormatOption)
throws IOException { throws IOException {
return styledImageBuilder(this, getTextBlock(), index, fileFormatOption, seed()) return styledImageBuilder(this, getTextBlock(), index, fileFormatOption)
.write(os); .write(os);
} }