From bc6951e94776d18b12736f9e7638f5a49cbb49a0 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Fri, 22 Dec 2023 02:19:19 +0100 Subject: refactor(language): use file extension provider --- .../main/java/tools/refinery/generator/ProblemLoader.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/subprojects/generator/src/main/java/tools/refinery/generator/ProblemLoader.java b/subprojects/generator/src/main/java/tools/refinery/generator/ProblemLoader.java index 29f80714..2d93a5ad 100644 --- a/subprojects/generator/src/main/java/tools/refinery/generator/ProblemLoader.java +++ b/subprojects/generator/src/main/java/tools/refinery/generator/ProblemLoader.java @@ -10,6 +10,7 @@ import com.google.inject.Provider; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.xtext.diagnostics.Severity; +import org.eclipse.xtext.resource.FileExtensionProvider; import org.eclipse.xtext.resource.IResourceFactory; import org.eclipse.xtext.resource.XtextResourceSet; import org.eclipse.xtext.util.LazyStringInputStream; @@ -24,6 +25,8 @@ import java.io.InputStream; import java.util.Map; public class ProblemLoader { + private String fileExtension; + @Inject private Provider resourceSetProvider; @@ -35,6 +38,11 @@ public class ProblemLoader { private CancellationToken cancellationToken = CancellationToken.NONE; + @Inject + public void setFileExtensionProvider(FileExtensionProvider fileExtensionProvider) { + this.fileExtension = fileExtensionProvider.getPrimaryFileExtension(); + } + public ProblemLoader cancellationToken(CancellationToken cancellationToken) { this.cancellationToken = cancellationToken; return this; @@ -48,7 +56,8 @@ public class ProblemLoader { public Problem loadStream(InputStream inputStream) throws IOException { var resourceSet = resourceSetProvider.get(); - var resource = resourceFactory.createResource(URI.createFileURI("__synthetic.problem")); + var uri = URI.createFileURI("__synthetic." + fileExtension); + var resource = resourceFactory.createResource(uri); resourceSet.getResources().add(resource); resource.load(inputStream, Map.of()); return loadResource(resource); @@ -82,7 +91,7 @@ public class ProblemLoader { if (!errors.isEmpty()) { throw new ValidationErrorsException(resource.getURI(), errors); } - if (resource.getContents().isEmpty() || !(resource.getContents().get(0) instanceof Problem problem)) { + if (resource.getContents().isEmpty() || !(resource.getContents().getFirst() instanceof Problem problem)) { throw new IllegalArgumentException("Model generation problem not found in resource " + resource.getURI()); } return problem; -- cgit v1.2.3-54-g00ecf