From cb77845089f6c8171fc3c39a92690dee3671886a Mon Sep 17 00:00:00 2001 From: OszkarSemerath Date: Sun, 17 Feb 2019 19:34:52 +0100 Subject: Created new module to load referred patterns. hacked metamodel linking. --- .../execution/PatternLanguageWithRSModule.xtend | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/PatternLanguageWithRSModule.xtend (limited to 'Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/PatternLanguageWithRSModule.xtend') 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 @@ +package hu.bme.mit.inf.dslreasoner.application.execution + +import com.google.inject.Binder +import com.google.inject.multibindings.Multibinder +import com.google.inject.name.Names +import org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguageStandaloneSetup.StandaloneParserWithSeparateModules +import org.eclipse.viatra.query.patternlanguage.emf.scoping.EMFPatternLanguageImportNamespaceProvider +import org.eclipse.viatra.query.patternlanguage.emf.scoping.IMetamodelProvider +import org.eclipse.viatra.query.patternlanguage.emf.scoping.IMetamodelProviderInstance +import org.eclipse.xtext.scoping.IScopeProvider +import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider +import org.eclipse.viatra.query.patternlanguage.emf.scoping.CompoundMetamodelProviderService +import org.eclipse.viatra.query.patternlanguage.emf.scoping.MetamodelProviderService +import org.eclipse.viatra.query.patternlanguage.emf.scoping.ResourceSetMetamodelProviderService +import org.eclipse.viatra.query.patternlanguage.emf.types.EMFTypeInferrer +import org.eclipse.viatra.query.patternlanguage.emf.types.EMFTypeSystem +import org.eclipse.viatra.query.patternlanguage.emf.types.ITypeInferrer +import org.eclipse.viatra.query.patternlanguage.emf.types.ITypeSystem +import org.eclipse.viatra.query.patternlanguage.emf.EMFPatternLanguageRuntimeModule + +class PatternLanguageWithRSModule extends EMFPatternLanguageRuntimeModule{ + + override configureIScopeProviderDelegate(Binder binder) { + binder.bind(IScopeProvider).annotatedWith(Names.named(AbstractDeclarativeScopeProvider.NAMED_DELEGATE)) + .to(EMFPatternLanguageImportNamespaceProvider); + Multibinder::newSetBinder(binder, IMetamodelProviderInstance); + } + + override Class bindIMetamodelProvider() { + CompoundMetamodelProviderService + } + + def configureMetamodelProviderInstance(Binder binder) { + val metamodelProviderBinder = Multibinder.newSetBinder(binder, IMetamodelProviderInstance) + metamodelProviderBinder.addBinding.to(MetamodelProviderService) + metamodelProviderBinder.addBinding.to(ResourceSetMetamodelProviderService) + } + + override Class bindITypeSystem() { + return EMFTypeSystem; + } + + override Class bindITypeInferrer() { + return EMFTypeInferrer; + } +} \ No newline at end of file -- cgit v1.2.3-70-g09d2