aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/language-web/src/main/java/tools/refinery/language/web/semantics/SemanticsWorker.java
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/language-web/src/main/java/tools/refinery/language/web/semantics/SemanticsWorker.java')
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/semantics/SemanticsWorker.java24
1 files changed, 10 insertions, 14 deletions
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/semantics/SemanticsWorker.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/semantics/SemanticsWorker.java
index 43d0238c..108b87dc 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/semantics/SemanticsWorker.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/semantics/SemanticsWorker.java
@@ -18,6 +18,7 @@ import org.eclipse.xtext.validation.IDiagnosticConverter;
18import org.eclipse.xtext.validation.Issue; 18import org.eclipse.xtext.validation.Issue;
19import org.eclipse.xtext.web.server.validation.ValidationResult; 19import org.eclipse.xtext.web.server.validation.ValidationResult;
20import tools.refinery.language.model.problem.Problem; 20import tools.refinery.language.model.problem.Problem;
21import tools.refinery.language.semantics.metadata.MetadataCreator;
21import tools.refinery.language.semantics.model.ModelInitializer; 22import tools.refinery.language.semantics.model.ModelInitializer;
22import tools.refinery.language.semantics.model.SemanticsUtils; 23import tools.refinery.language.semantics.model.SemanticsUtils;
23import tools.refinery.language.semantics.model.TracedException; 24import tools.refinery.language.semantics.model.TracedException;
@@ -34,8 +35,6 @@ import tools.refinery.store.tuple.Tuple;
34import tools.refinery.viatra.runtime.CancellationToken; 35import tools.refinery.viatra.runtime.CancellationToken;
35 36
36import java.util.ArrayList; 37import java.util.ArrayList;
37import java.util.Arrays;
38import java.util.List;
39import java.util.TreeMap; 38import java.util.TreeMap;
40import java.util.concurrent.Callable; 39import java.util.concurrent.Callable;
41 40
@@ -54,6 +53,9 @@ class SemanticsWorker implements Callable<SemanticsResult> {
54 @Inject 53 @Inject
55 private ModelInitializer initializer; 54 private ModelInitializer initializer;
56 55
56 @Inject
57 private MetadataCreator metadataCreator;
58
57 private Problem problem; 59 private Problem problem;
58 60
59 private CancellationToken cancellationToken; 61 private CancellationToken cancellationToken;
@@ -78,7 +80,11 @@ class SemanticsWorker implements Callable<SemanticsResult> {
78 try { 80 try {
79 var modelSeed = initializer.createModel(problem, builder); 81 var modelSeed = initializer.createModel(problem, builder);
80 cancellationToken.checkCancelled(); 82 cancellationToken.checkCancelled();
81 var nodeTrace = getNodeTrace(initializer); 83 metadataCreator.setInitializer(initializer);
84 cancellationToken.checkCancelled();
85 var nodesMetadata = metadataCreator.getNodesMetadata();
86 cancellationToken.checkCancelled();
87 var relationsMetadata = metadataCreator.getRelationsMetadata();
82 cancellationToken.checkCancelled(); 88 cancellationToken.checkCancelled();
83 var store = builder.build(); 89 var store = builder.build();
84 cancellationToken.checkCancelled(); 90 cancellationToken.checkCancelled();
@@ -87,7 +93,7 @@ class SemanticsWorker implements Callable<SemanticsResult> {
87 cancellationToken.checkCancelled(); 93 cancellationToken.checkCancelled();
88 var partialInterpretation = getPartialInterpretation(initializer, model); 94 var partialInterpretation = getPartialInterpretation(initializer, model);
89 95
90 return new SemanticsSuccessResult(nodeTrace, partialInterpretation); 96 return new SemanticsSuccessResult(nodesMetadata, relationsMetadata, partialInterpretation);
91 } catch (TracedException e) { 97 } catch (TracedException e) {
92 return getTracedErrorResult(e.getSourceElement(), e.getMessage()); 98 return getTracedErrorResult(e.getSourceElement(), e.getMessage());
93 } catch (TranslationException e) { 99 } catch (TranslationException e) {
@@ -96,16 +102,6 @@ class SemanticsWorker implements Callable<SemanticsResult> {
96 } 102 }
97 } 103 }
98 104
99 private List<String> getNodeTrace(ModelInitializer initializer) {
100 var nodeTrace = new String[initializer.getNodeCount()];
101 for (var entry : initializer.getNodeTrace().keyValuesView()) {
102 var node = entry.getOne();
103 var index = entry.getTwo();
104 nodeTrace[index] = semanticsUtils.getName(node).orElse(null);
105 }
106 return Arrays.asList(nodeTrace);
107 }
108
109 private JsonObject getPartialInterpretation(ModelInitializer initializer, Model model) { 105 private JsonObject getPartialInterpretation(ModelInitializer initializer, Model model) {
110 var adapter = model.getAdapter(ReasoningAdapter.class); 106 var adapter = model.getAdapter(ReasoningAdapter.class);
111 var json = new JsonObject(); 107 var json = new JsonObject();