diff options
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.java | 24 |
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; | |||
18 | import org.eclipse.xtext.validation.Issue; | 18 | import org.eclipse.xtext.validation.Issue; |
19 | import org.eclipse.xtext.web.server.validation.ValidationResult; | 19 | import org.eclipse.xtext.web.server.validation.ValidationResult; |
20 | import tools.refinery.language.model.problem.Problem; | 20 | import tools.refinery.language.model.problem.Problem; |
21 | import tools.refinery.language.semantics.metadata.MetadataCreator; | ||
21 | import tools.refinery.language.semantics.model.ModelInitializer; | 22 | import tools.refinery.language.semantics.model.ModelInitializer; |
22 | import tools.refinery.language.semantics.model.SemanticsUtils; | 23 | import tools.refinery.language.semantics.model.SemanticsUtils; |
23 | import tools.refinery.language.semantics.model.TracedException; | 24 | import tools.refinery.language.semantics.model.TracedException; |
@@ -34,8 +35,6 @@ import tools.refinery.store.tuple.Tuple; | |||
34 | import tools.refinery.viatra.runtime.CancellationToken; | 35 | import tools.refinery.viatra.runtime.CancellationToken; |
35 | 36 | ||
36 | import java.util.ArrayList; | 37 | import java.util.ArrayList; |
37 | import java.util.Arrays; | ||
38 | import java.util.List; | ||
39 | import java.util.TreeMap; | 38 | import java.util.TreeMap; |
40 | import java.util.concurrent.Callable; | 39 | import 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(); |