diff options
Diffstat (limited to 'subprojects/store-dse-visualization/src/main')
-rw-r--r-- | subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/ModelVisualizerBuilder.java | 1 | ||||
-rw-r--r-- | subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/internal/ModelVisualizerAdapterImpl.java | 19 | ||||
-rw-r--r-- | subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/internal/ModelVisualizerBuilderImpl.java | 14 | ||||
-rw-r--r-- | subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/internal/ModelVisualizerStoreAdapterImpl.java (renamed from subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/internal/ModelVisualizeStoreAdapterImpl.java) | 12 |
4 files changed, 32 insertions, 14 deletions
diff --git a/subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/ModelVisualizerBuilder.java b/subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/ModelVisualizerBuilder.java index 1ee41cc3..e122f55c 100644 --- a/subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/ModelVisualizerBuilder.java +++ b/subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/ModelVisualizerBuilder.java | |||
@@ -9,6 +9,7 @@ import tools.refinery.store.adapter.ModelAdapterBuilder; | |||
9 | import tools.refinery.visualization.internal.FileFormat; | 9 | import tools.refinery.visualization.internal.FileFormat; |
10 | 10 | ||
11 | public interface ModelVisualizerBuilder extends ModelAdapterBuilder { | 11 | public interface ModelVisualizerBuilder extends ModelAdapterBuilder { |
12 | ModelVisualizerBuilder withDotBinaryPath(String dotBinaryPath); | ||
12 | ModelVisualizerBuilder withOutputPath(String outputPath); | 13 | ModelVisualizerBuilder withOutputPath(String outputPath); |
13 | ModelVisualizerBuilder withFormat(FileFormat format); | 14 | ModelVisualizerBuilder withFormat(FileFormat format); |
14 | ModelVisualizerBuilder saveDesignSpace(); | 15 | ModelVisualizerBuilder saveDesignSpace(); |
diff --git a/subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/internal/ModelVisualizerAdapterImpl.java b/subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/internal/ModelVisualizerAdapterImpl.java index a6a3dc69..ef10dd30 100644 --- a/subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/internal/ModelVisualizerAdapterImpl.java +++ b/subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/internal/ModelVisualizerAdapterImpl.java | |||
@@ -5,6 +5,8 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.visualization.internal; | 6 | package tools.refinery.visualization.internal; |
7 | 7 | ||
8 | import org.slf4j.Logger; | ||
9 | import org.slf4j.LoggerFactory; | ||
8 | import tools.refinery.store.map.Version; | 10 | import tools.refinery.store.map.Version; |
9 | import tools.refinery.store.model.Interpretation; | 11 | import tools.refinery.store.model.Interpretation; |
10 | import tools.refinery.store.model.Model; | 12 | import tools.refinery.store.model.Model; |
@@ -20,13 +22,13 @@ import java.util.*; | |||
20 | import java.util.stream.Collectors; | 22 | import java.util.stream.Collectors; |
21 | 23 | ||
22 | public class ModelVisualizerAdapterImpl implements ModelVisualizerAdapter { | 24 | public class ModelVisualizerAdapterImpl implements ModelVisualizerAdapter { |
25 | private static final Logger LOG = LoggerFactory.getLogger(ModelVisualizerAdapterImpl.class); | ||
26 | |||
23 | private final Model model; | 27 | private final Model model; |
24 | private final ModelVisualizerStoreAdapter storeAdapter; | 28 | private final ModelVisualizerStoreAdapterImpl storeAdapter; |
25 | private final Map<AnySymbol, Interpretation<?>> allInterpretations; | 29 | private final Map<AnySymbol, Interpretation<?>> allInterpretations; |
26 | private final StringBuilder designSpaceBuilder = new StringBuilder(); | 30 | private final StringBuilder designSpaceBuilder = new StringBuilder(); |
27 | private final Map<Version, Integer> states = new HashMap<>(); | 31 | private final Map<Version, Integer> states = new HashMap<>(); |
28 | private int transitionCounter = 0; | ||
29 | private Integer numberOfStates = 0; | ||
30 | private final String outputPath; | 32 | private final String outputPath; |
31 | private final Set<FileFormat> formats; | 33 | private final Set<FileFormat> formats; |
32 | private final boolean renderDesignSpace; | 34 | private final boolean renderDesignSpace; |
@@ -41,7 +43,7 @@ public class ModelVisualizerAdapterImpl implements ModelVisualizerAdapter { | |||
41 | false, "0" | 43 | false, "0" |
42 | ); | 44 | ); |
43 | 45 | ||
44 | public ModelVisualizerAdapterImpl(Model model, ModelVisualizerStoreAdapter storeAdapter) { | 46 | public ModelVisualizerAdapterImpl(Model model, ModelVisualizerStoreAdapterImpl storeAdapter) { |
45 | this.model = model; | 47 | this.model = model; |
46 | this.storeAdapter = storeAdapter; | 48 | this.storeAdapter = storeAdapter; |
47 | this.outputPath = storeAdapter.getOutputPath(); | 49 | this.outputPath = storeAdapter.getOutputPath(); |
@@ -257,8 +259,8 @@ public class ModelVisualizerAdapterImpl implements ModelVisualizerAdapter { | |||
257 | 259 | ||
258 | try (FileWriter writer = new FileWriter(file)) { | 260 | try (FileWriter writer = new FileWriter(file)) { |
259 | writer.write(dot); | 261 | writer.write(dot); |
260 | } catch (Exception e) { | 262 | } catch (IOException e) { |
261 | e.printStackTrace(); | 263 | LOG.error("Failed to write dot file", e); |
262 | return false; | 264 | return false; |
263 | } | 265 | } |
264 | return true; | 266 | return true; |
@@ -270,14 +272,15 @@ public class ModelVisualizerAdapterImpl implements ModelVisualizerAdapter { | |||
270 | 272 | ||
271 | private boolean renderDot(String dot, FileFormat format, String filePath) { | 273 | private boolean renderDot(String dot, FileFormat format, String filePath) { |
272 | try { | 274 | try { |
273 | Process process = new ProcessBuilder("dot", "-T" + format.getFormat(), "-o", filePath).start(); | 275 | Process process = new ProcessBuilder(storeAdapter.getDotBinaryPath(), "-T" + format.getFormat(), |
276 | "-o", filePath).start(); | ||
274 | 277 | ||
275 | OutputStream osToProcess = process.getOutputStream(); | 278 | OutputStream osToProcess = process.getOutputStream(); |
276 | PrintWriter pwToProcess = new PrintWriter(osToProcess); | 279 | PrintWriter pwToProcess = new PrintWriter(osToProcess); |
277 | pwToProcess.write(dot); | 280 | pwToProcess.write(dot); |
278 | pwToProcess.close(); | 281 | pwToProcess.close(); |
279 | } catch (IOException e) { | 282 | } catch (IOException e) { |
280 | e.printStackTrace(); | 283 | LOG.error("Failed to render dot", e); |
281 | return false; | 284 | return false; |
282 | } | 285 | } |
283 | return true; | 286 | return true; |
diff --git a/subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/internal/ModelVisualizerBuilderImpl.java b/subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/internal/ModelVisualizerBuilderImpl.java index 9ba2abe8..db4f37b4 100644 --- a/subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/internal/ModelVisualizerBuilderImpl.java +++ b/subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/internal/ModelVisualizerBuilderImpl.java | |||
@@ -13,16 +13,24 @@ import java.util.LinkedHashSet; | |||
13 | import java.util.Set; | 13 | import java.util.Set; |
14 | 14 | ||
15 | public class ModelVisualizerBuilderImpl | 15 | public class ModelVisualizerBuilderImpl |
16 | extends AbstractModelAdapterBuilder<ModelVisualizeStoreAdapterImpl> | 16 | extends AbstractModelAdapterBuilder<ModelVisualizerStoreAdapterImpl> |
17 | implements ModelVisualizerBuilder { | 17 | implements ModelVisualizerBuilder { |
18 | private String dotBinaryPath = "dot"; | ||
18 | private String outputPath; | 19 | private String outputPath; |
19 | private boolean saveDesignSpace = false; | 20 | private boolean saveDesignSpace = false; |
20 | private boolean saveStates = false; | 21 | private boolean saveStates = false; |
21 | private final Set<FileFormat> formats = new LinkedHashSet<>(); | 22 | private final Set<FileFormat> formats = new LinkedHashSet<>(); |
22 | 23 | ||
23 | @Override | 24 | @Override |
24 | protected ModelVisualizeStoreAdapterImpl doBuild(ModelStore store) { | 25 | protected ModelVisualizerStoreAdapterImpl doBuild(ModelStore store) { |
25 | return new ModelVisualizeStoreAdapterImpl(store, outputPath, formats, saveDesignSpace, saveStates); | 26 | return new ModelVisualizerStoreAdapterImpl(store, dotBinaryPath, outputPath, formats, saveDesignSpace, saveStates); |
27 | } | ||
28 | |||
29 | @Override | ||
30 | public ModelVisualizerBuilder withDotBinaryPath(String dotBinaryPath) { | ||
31 | checkNotConfigured(); | ||
32 | this.dotBinaryPath = dotBinaryPath; | ||
33 | return this; | ||
26 | } | 34 | } |
27 | 35 | ||
28 | @Override | 36 | @Override |
diff --git a/subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/internal/ModelVisualizeStoreAdapterImpl.java b/subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/internal/ModelVisualizerStoreAdapterImpl.java index 04be22d6..c2ad4d87 100644 --- a/subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/internal/ModelVisualizeStoreAdapterImpl.java +++ b/subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/internal/ModelVisualizerStoreAdapterImpl.java | |||
@@ -12,16 +12,18 @@ import tools.refinery.visualization.ModelVisualizerStoreAdapter; | |||
12 | 12 | ||
13 | import java.util.Set; | 13 | import java.util.Set; |
14 | 14 | ||
15 | public class ModelVisualizeStoreAdapterImpl implements ModelVisualizerStoreAdapter { | 15 | public class ModelVisualizerStoreAdapterImpl implements ModelVisualizerStoreAdapter { |
16 | private final ModelStore store; | 16 | private final ModelStore store; |
17 | private final String dotBinaryPath; | ||
17 | private final String outputPath; | 18 | private final String outputPath; |
18 | private final boolean renderDesignSpace; | 19 | private final boolean renderDesignSpace; |
19 | private final boolean renderStates; | 20 | private final boolean renderStates; |
20 | private final Set<FileFormat> formats; | 21 | private final Set<FileFormat> formats; |
21 | 22 | ||
22 | public ModelVisualizeStoreAdapterImpl(ModelStore store, String outputPath, Set<FileFormat> formats, | 23 | public ModelVisualizerStoreAdapterImpl(ModelStore store, String dotBinaryPath, String outputPath, |
23 | boolean renderDesignSpace, boolean renderStates) { | 24 | Set<FileFormat> formats, boolean renderDesignSpace, boolean renderStates) { |
24 | this.store = store; | 25 | this.store = store; |
26 | this.dotBinaryPath = dotBinaryPath; | ||
25 | this.outputPath = outputPath; | 27 | this.outputPath = outputPath; |
26 | this.formats = formats; | 28 | this.formats = formats; |
27 | this.renderDesignSpace = renderDesignSpace; | 29 | this.renderDesignSpace = renderDesignSpace; |
@@ -38,6 +40,10 @@ public class ModelVisualizeStoreAdapterImpl implements ModelVisualizerStoreAdapt | |||
38 | return new ModelVisualizerAdapterImpl(model, this); | 40 | return new ModelVisualizerAdapterImpl(model, this); |
39 | } | 41 | } |
40 | 42 | ||
43 | String getDotBinaryPath() { | ||
44 | return dotBinaryPath; | ||
45 | } | ||
46 | |||
41 | @Override | 47 | @Override |
42 | public String getOutputPath() { | 48 | public String getOutputPath() { |
43 | return outputPath; | 49 | return outputPath; |