aboutsummaryrefslogtreecommitdiffstats
path: root/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/PatternLanguageWithRSModule.xtend
diff options
context:
space:
mode:
Diffstat (limited to 'Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/PatternLanguageWithRSModule.xtend')
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/PatternLanguageWithRSModule.xtend46
1 files changed, 46 insertions, 0 deletions
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/PatternLanguageWithRSModule.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/PatternLanguageWithRSModule.xtend
new file mode 100644
index 00000000..1269ec1f
--- /dev/null
+++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/PatternLanguageWithRSModule.xtend
@@ -0,0 +1,46 @@
1package hu.bme.mit.inf.dslreasoner.application.execution
2
3import com.google.inject.Binder
4import com.google.inject.multibindings.Multibinder
5import com.google.inject.name.Names
6import org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguageStandaloneSetup.StandaloneParserWithSeparateModules
7import org.eclipse.viatra.query.patternlanguage.emf.scoping.EMFPatternLanguageImportNamespaceProvider
8import org.eclipse.viatra.query.patternlanguage.emf.scoping.IMetamodelProvider
9import org.eclipse.viatra.query.patternlanguage.emf.scoping.IMetamodelProviderInstance
10import org.eclipse.xtext.scoping.IScopeProvider
11import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider
12import org.eclipse.viatra.query.patternlanguage.emf.scoping.CompoundMetamodelProviderService
13import org.eclipse.viatra.query.patternlanguage.emf.scoping.MetamodelProviderService
14import org.eclipse.viatra.query.patternlanguage.emf.scoping.ResourceSetMetamodelProviderService
15import org.eclipse.viatra.query.patternlanguage.emf.types.EMFTypeInferrer
16import org.eclipse.viatra.query.patternlanguage.emf.types.EMFTypeSystem
17import org.eclipse.viatra.query.patternlanguage.emf.types.ITypeInferrer
18import org.eclipse.viatra.query.patternlanguage.emf.types.ITypeSystem
19import org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguageRuntimeModule
20
21class PatternLanguageWithRSModule extends EMFPatternLanguageRuntimeModule{
22
23 override configureIScopeProviderDelegate(Binder binder) {
24 binder.bind(IScopeProvider).annotatedWith(Names.named(AbstractDeclarativeScopeProvider.NAMED_DELEGATE))
25 .to(EMFPatternLanguageImportNamespaceProvider);
26 Multibinder::newSetBinder(binder, IMetamodelProviderInstance);
27 }
28
29 override Class<? extends IMetamodelProvider> bindIMetamodelProvider() {
30 CompoundMetamodelProviderService
31 }
32
33 def configureMetamodelProviderInstance(Binder binder) {
34 val metamodelProviderBinder = Multibinder.newSetBinder(binder, IMetamodelProviderInstance)
35 metamodelProviderBinder.addBinding.to(MetamodelProviderService)
36 metamodelProviderBinder.addBinding.to(ResourceSetMetamodelProviderService)
37 }
38
39 override Class<? extends ITypeSystem> bindITypeSystem() {
40 return EMFTypeSystem;
41 }
42
43 override Class<? extends ITypeInferrer> bindITypeInferrer() {
44 return EMFTypeInferrer;
45 }
46} \ No newline at end of file