aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/language/src/main/java/tools/refinery/language/ProblemRuntimeModule.java
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/language/src/main/java/tools/refinery/language/ProblemRuntimeModule.java')
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/ProblemRuntimeModule.java35
1 files changed, 32 insertions, 3 deletions
diff --git a/subprojects/language/src/main/java/tools/refinery/language/ProblemRuntimeModule.java b/subprojects/language/src/main/java/tools/refinery/language/ProblemRuntimeModule.java
index 00dd3de3..f9a564b0 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/ProblemRuntimeModule.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/ProblemRuntimeModule.java
@@ -1,5 +1,5 @@
1/* 1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/> 2 * SPDX-FileCopyrightText: 2021-2024 The Refinery Authors <https://refinery.tools/>
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
@@ -14,7 +14,10 @@ import com.google.inject.name.Names;
14import org.eclipse.xtext.conversion.IValueConverterService; 14import org.eclipse.xtext.conversion.IValueConverterService;
15import org.eclipse.xtext.linking.ILinkingService; 15import org.eclipse.xtext.linking.ILinkingService;
16import org.eclipse.xtext.naming.IQualifiedNameConverter; 16import org.eclipse.xtext.naming.IQualifiedNameConverter;
17import org.eclipse.xtext.naming.IQualifiedNameProvider;
18import org.eclipse.xtext.parser.IAstFactory;
17import org.eclipse.xtext.parser.IParser; 19import org.eclipse.xtext.parser.IParser;
20import org.eclipse.xtext.parsetree.reconstr.ITransientValueService;
18import org.eclipse.xtext.resource.*; 21import org.eclipse.xtext.resource.*;
19import org.eclipse.xtext.scoping.IGlobalScopeProvider; 22import org.eclipse.xtext.scoping.IGlobalScopeProvider;
20import org.eclipse.xtext.scoping.IScopeProvider; 23import org.eclipse.xtext.scoping.IScopeProvider;
@@ -26,16 +29,21 @@ import org.eclipse.xtext.validation.IResourceValidator;
26import org.eclipse.xtext.xbase.annotations.validation.DerivedStateAwareResourceValidator; 29import org.eclipse.xtext.xbase.annotations.validation.DerivedStateAwareResourceValidator;
27import tools.refinery.language.conversion.ProblemValueConverterService; 30import tools.refinery.language.conversion.ProblemValueConverterService;
28import tools.refinery.language.linking.ProblemLinkingService; 31import tools.refinery.language.linking.ProblemLinkingService;
32import tools.refinery.language.naming.ProblemDelegateQualifiedNameProvider;
29import tools.refinery.language.naming.ProblemQualifiedNameConverter; 33import tools.refinery.language.naming.ProblemQualifiedNameConverter;
34import tools.refinery.language.naming.ProblemQualifiedNameProvider;
35import tools.refinery.language.parser.ProblemEcoreElementFactory;
30import tools.refinery.language.parser.antlr.TokenSourceInjectingProblemParser; 36import tools.refinery.language.parser.antlr.TokenSourceInjectingProblemParser;
31import tools.refinery.language.resource.ProblemDerivedStateComputer;
32import tools.refinery.language.resource.ProblemLocationInFileProvider; 37import tools.refinery.language.resource.ProblemLocationInFileProvider;
33import tools.refinery.language.resource.ProblemResource; 38import tools.refinery.language.resource.ProblemResource;
39import tools.refinery.language.resource.ProblemResourceDescriptionManager;
34import tools.refinery.language.resource.ProblemResourceDescriptionStrategy; 40import tools.refinery.language.resource.ProblemResourceDescriptionStrategy;
41import tools.refinery.language.resource.state.ProblemDerivedStateComputer;
35import tools.refinery.language.scoping.ProblemGlobalScopeProvider; 42import tools.refinery.language.scoping.ProblemGlobalScopeProvider;
36import tools.refinery.language.scoping.ProblemLocalScopeProvider; 43import tools.refinery.language.scoping.ProblemLocalScopeProvider;
37import tools.refinery.language.serializer.PreferShortAssertionsProblemSemanticSequencer; 44import tools.refinery.language.serializer.PreferShortAssertionsProblemSemanticSequencer;
38import tools.refinery.language.serializer.ProblemCrossReferenceSerializer; 45import tools.refinery.language.serializer.ProblemCrossReferenceSerializer;
46import tools.refinery.language.serializer.ProblemTransientValueService;
39import tools.refinery.language.validation.ProblemDiagnosticConverter; 47import tools.refinery.language.validation.ProblemDiagnosticConverter;
40 48
41/** 49/**
@@ -50,10 +58,26 @@ public class ProblemRuntimeModule extends AbstractProblemRuntimeModule {
50 return TokenSourceInjectingProblemParser.class; 58 return TokenSourceInjectingProblemParser.class;
51 } 59 }
52 60
61 @Override
62 public Class<? extends IAstFactory> bindIAstFactory() {
63 return ProblemEcoreElementFactory.class;
64 }
65
53 public Class<? extends IQualifiedNameConverter> bindIQualifiedNameConverter() { 66 public Class<? extends IQualifiedNameConverter> bindIQualifiedNameConverter() {
54 return ProblemQualifiedNameConverter.class; 67 return ProblemQualifiedNameConverter.class;
55 } 68 }
56 69
70 public void configureIQualifiedNameProviderDelegate(Binder binder) {
71 binder.bind(IQualifiedNameProvider.class)
72 .annotatedWith(Names.named(ProblemQualifiedNameProvider.NAMED_DELEGATE))
73 .to(ProblemDelegateQualifiedNameProvider.class);
74 }
75
76 @Override
77 public Class<? extends IQualifiedNameProvider> bindIQualifiedNameProvider() {
78 return ProblemQualifiedNameProvider.class;
79 }
80
57 public Class<? extends IDefaultResourceDescriptionStrategy> bindIDefaultResourceDescriptionStrategy() { 81 public Class<? extends IDefaultResourceDescriptionStrategy> bindIDefaultResourceDescriptionStrategy() {
58 return ProblemResourceDescriptionStrategy.class; 82 return ProblemResourceDescriptionStrategy.class;
59 } 83 }
@@ -87,7 +111,7 @@ public class ProblemRuntimeModule extends AbstractProblemRuntimeModule {
87 // Method name follows Xtext convention. 111 // Method name follows Xtext convention.
88 @SuppressWarnings("squid:S100") 112 @SuppressWarnings("squid:S100")
89 public Class<? extends IResourceDescription.Manager> bindIResourceDescription$Manager() { 113 public Class<? extends IResourceDescription.Manager> bindIResourceDescription$Manager() {
90 return DerivedStateAwareResourceDescriptionManager.class; 114 return ProblemResourceDescriptionManager.class;
91 } 115 }
92 116
93 public Class<? extends IResourceValidator> bindIResourceValidator() { 117 public Class<? extends IResourceValidator> bindIResourceValidator() {
@@ -104,6 +128,11 @@ public class ProblemRuntimeModule extends AbstractProblemRuntimeModule {
104 } 128 }
105 129
106 @Override 130 @Override
131 public Class<? extends ITransientValueService> bindITransientValueService() {
132 return ProblemTransientValueService.class;
133 }
134
135 @Override
107 public Class<? extends ISemanticSequencer> bindISemanticSequencer() { 136 public Class<? extends ISemanticSequencer> bindISemanticSequencer() {
108 return PreferShortAssertionsProblemSemanticSequencer.class; 137 return PreferShortAssertionsProblemSemanticSequencer.class;
109 } 138 }