diff options
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.xtend | 46 |
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 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.application.execution | ||
2 | |||
3 | import com.google.inject.Binder | ||
4 | import com.google.inject.multibindings.Multibinder | ||
5 | import com.google.inject.name.Names | ||
6 | import org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguageStandaloneSetup.StandaloneParserWithSeparateModules | ||
7 | import org.eclipse.viatra.query.patternlanguage.emf.scoping.EMFPatternLanguageImportNamespaceProvider | ||
8 | import org.eclipse.viatra.query.patternlanguage.emf.scoping.IMetamodelProvider | ||
9 | import org.eclipse.viatra.query.patternlanguage.emf.scoping.IMetamodelProviderInstance | ||
10 | import org.eclipse.xtext.scoping.IScopeProvider | ||
11 | import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider | ||
12 | import org.eclipse.viatra.query.patternlanguage.emf.scoping.CompoundMetamodelProviderService | ||
13 | import org.eclipse.viatra.query.patternlanguage.emf.scoping.MetamodelProviderService | ||
14 | import org.eclipse.viatra.query.patternlanguage.emf.scoping.ResourceSetMetamodelProviderService | ||
15 | import org.eclipse.viatra.query.patternlanguage.emf.types.EMFTypeInferrer | ||
16 | import org.eclipse.viatra.query.patternlanguage.emf.types.EMFTypeSystem | ||
17 | import org.eclipse.viatra.query.patternlanguage.emf.types.ITypeInferrer | ||
18 | import org.eclipse.viatra.query.patternlanguage.emf.types.ITypeSystem | ||
19 | import org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguageRuntimeModule | ||
20 | |||
21 | class 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 | ||