aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/store-dse-visualization
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2023-09-16 00:28:21 +0200
committerLibravatar Kristóf Marussy <kristof@marussy.com>2023-09-16 02:21:41 +0200
commit4f1d586dc24e1f66ab6d07218755423a80e0c615 (patch)
tree7da3144f834f7ae1adb24d2caa532e7da313ee43 /subprojects/store-dse-visualization
parentMerge pull request #40 from kris7t/update-readme (diff)
downloadrefinery-4f1d586dc24e1f66ab6d07218755423a80e0c615.tar.gz
refinery-4f1d586dc24e1f66ab6d07218755423a80e0c615.tar.zst
refinery-4f1d586dc24e1f66ab6d07218755423a80e0c615.zip
build: fix Sonar quality gate issues
Removes VIATRA sources from coverage anaylsis, since those files are maintained by the VIATRA project.
Diffstat (limited to 'subprojects/store-dse-visualization')
-rw-r--r--subprojects/store-dse-visualization/build.gradle.kts1
-rw-r--r--subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/ModelVisualizerBuilder.java1
-rw-r--r--subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/internal/ModelVisualizerAdapterImpl.java19
-rw-r--r--subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/internal/ModelVisualizerBuilderImpl.java14
-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
5 files changed, 33 insertions, 14 deletions
diff --git a/subprojects/store-dse-visualization/build.gradle.kts b/subprojects/store-dse-visualization/build.gradle.kts
index abad0491..ab9ed336 100644
--- a/subprojects/store-dse-visualization/build.gradle.kts
+++ b/subprojects/store-dse-visualization/build.gradle.kts
@@ -10,4 +10,5 @@ plugins {
10 10
11dependencies { 11dependencies {
12 api(project(":refinery-store-query")) 12 api(project(":refinery-store-query"))
13 implementation(libs.slf4j.api)
13} 14}
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;
9import tools.refinery.visualization.internal.FileFormat; 9import tools.refinery.visualization.internal.FileFormat;
10 10
11public interface ModelVisualizerBuilder extends ModelAdapterBuilder { 11public 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 */
6package tools.refinery.visualization.internal; 6package tools.refinery.visualization.internal;
7 7
8import org.slf4j.Logger;
9import org.slf4j.LoggerFactory;
8import tools.refinery.store.map.Version; 10import tools.refinery.store.map.Version;
9import tools.refinery.store.model.Interpretation; 11import tools.refinery.store.model.Interpretation;
10import tools.refinery.store.model.Model; 12import tools.refinery.store.model.Model;
@@ -20,13 +22,13 @@ import java.util.*;
20import java.util.stream.Collectors; 22import java.util.stream.Collectors;
21 23
22public class ModelVisualizerAdapterImpl implements ModelVisualizerAdapter { 24public 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;
13import java.util.Set; 13import java.util.Set;
14 14
15public class ModelVisualizerBuilderImpl 15public 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
13import java.util.Set; 13import java.util.Set;
14 14
15public class ModelVisualizeStoreAdapterImpl implements ModelVisualizerStoreAdapter { 15public 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;