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:
authorLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-02-17 15:12:05 -0500
committerLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-02-17 15:12:05 -0500
commit2e5968a5162b04d33eb1d3a60dd394b68583a4b6 (patch)
treed3797fcf89614b1f7c69917dc6849585dd555fad /Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/PatternLanguageWithRSModule.xtend
parentCommit before merge (diff)
parentCreated new module to load referred patterns. hacked metamodel linking. (diff)
downloadVIATRA-Generator-2e5968a5162b04d33eb1d3a60dd394b68583a4b6.tar.gz
VIATRA-Generator-2e5968a5162b04d33eb1d3a60dd394b68583a4b6.tar.zst
VIATRA-Generator-2e5968a5162b04d33eb1d3a60dd394b68583a4b6.zip
Merge remote-tracking branch 'origin/master' into Vampire-New
Merge Oszkar's Java-related commit
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