summaryrefslogtreecommitdiffstats
path: root/subprojects/language-semantics/src/main
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2024-02-05 18:54:46 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2024-02-06 01:50:23 +0100
commit1ae461bd5319370e12878785d9c7ec9f89429406 (patch)
treea18797b520369a7f40ee13988308de67c66e046d /subprojects/language-semantics/src/main
parentRevert "refactor: simplify module name inference" (diff)
downloadrefinery-1ae461bd5319370e12878785d9c7ec9f89429406.tar.gz
refinery-1ae461bd5319370e12878785d9c7ec9f89429406.tar.zst
refinery-1ae461bd5319370e12878785d9c7ec9f89429406.zip
feat(language): automatic problem kind inference
Diffstat (limited to 'subprojects/language-semantics/src/main')
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/SolutionSerializer.java14
1 files changed, 3 insertions, 11 deletions
diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/SolutionSerializer.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/SolutionSerializer.java
index dad867b8..2fb0a49d 100644
--- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/SolutionSerializer.java
+++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/SolutionSerializer.java
@@ -13,7 +13,6 @@ import org.eclipse.emf.common.util.URI;
13import org.eclipse.emf.ecore.util.EcoreUtil; 13import org.eclipse.emf.ecore.util.EcoreUtil;
14import org.eclipse.xtext.naming.IQualifiedNameProvider; 14import org.eclipse.xtext.naming.IQualifiedNameProvider;
15import org.eclipse.xtext.naming.QualifiedName; 15import org.eclipse.xtext.naming.QualifiedName;
16import org.eclipse.xtext.resource.FileExtensionProvider;
17import org.eclipse.xtext.resource.IResourceFactory; 16import org.eclipse.xtext.resource.IResourceFactory;
18import org.eclipse.xtext.resource.XtextResource; 17import org.eclipse.xtext.resource.XtextResource;
19import org.eclipse.xtext.resource.XtextResourceSet; 18import org.eclipse.xtext.resource.XtextResourceSet;
@@ -42,8 +41,6 @@ import java.util.function.Function;
42import java.util.stream.Collectors; 41import java.util.stream.Collectors;
43 42
44public class SolutionSerializer { 43public class SolutionSerializer {
45 private String fileExtension;
46
47 @Inject 44 @Inject
48 private Provider<XtextResourceSet> resourceSetProvider; 45 private Provider<XtextResourceSet> resourceSetProvider;
49 46
@@ -74,13 +71,8 @@ public class SolutionSerializer {
74 private NodeDeclaration nodeDeclaration; 71 private NodeDeclaration nodeDeclaration;
75 private final MutableIntObjectMap<Node> nodes = IntObjectMaps.mutable.empty(); 72 private final MutableIntObjectMap<Node> nodes = IntObjectMaps.mutable.empty();
76 73
77 @Inject
78 public void setFileExtensionProvider(FileExtensionProvider fileExtensionProvider) {
79 this.fileExtension = fileExtensionProvider.getPrimaryFileExtension();
80 }
81
82 public Problem serializeSolution(ProblemTrace trace, Model model) { 74 public Problem serializeSolution(ProblemTrace trace, Model model) {
83 var uri = URI.createURI("__synthetic." + fileExtension); 75 var uri = URI.createURI("__synthetic." + ProblemUtil.MODULE_EXTENSION);
84 return serializeSolution(trace, model, uri); 76 return serializeSolution(trace, model, uri);
85 } 77 }
86 78
@@ -135,8 +127,8 @@ public class SolutionSerializer {
135 private Problem copyProblem(Problem originalProblem, URI uri) { 127 private Problem copyProblem(Problem originalProblem, URI uri) {
136 var newResourceSet = resourceSetProvider.get(); 128 var newResourceSet = resourceSetProvider.get();
137 ImportAdapter.copySettings(originalProblem, newResourceSet); 129 ImportAdapter.copySettings(originalProblem, newResourceSet);
138 if (!fileExtension.equals(uri.fileExtension())) { 130 if (!ProblemUtil.MODULE_EXTENSION.equals(uri.fileExtension())) {
139 uri = uri.appendFileExtension(fileExtension); 131 uri = uri.appendFileExtension(ProblemUtil.MODULE_EXTENSION);
140 } 132 }
141 var newResource = resourceFactory.createResource(uri); 133 var newResource = resourceFactory.createResource(uri);
142 newResourceSet.getResources().add(newResource); 134 newResourceSet.getResources().add(newResource);