aboutsummaryrefslogtreecommitdiffstats
path: root/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/scoping/ApplicationConfigurationScopeProvider.xtend
diff options
context:
space:
mode:
authorLibravatar OszkarSemerath <oszkar.semerath@gmail.com>2018-01-30 01:27:48 +0100
committerLibravatar OszkarSemerath <oszkar.semerath@gmail.com>2018-01-30 01:27:48 +0100
commit777d5ecc6031f02ad3757db1c9736b6aad5ac6f5 (patch)
treec80be670a4d3dc519837c575338cde6c73b17b3e /Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/scoping/ApplicationConfigurationScopeProvider.xtend
parentLoading services (diff)
downloadVIATRA-Generator-777d5ecc6031f02ad3757db1c9736b6aad5ac6f5.tar.gz
VIATRA-Generator-777d5ecc6031f02ad3757db1c9736b6aad5ac6f5.tar.zst
VIATRA-Generator-777d5ecc6031f02ad3757db1c9736b6aad5ac6f5.zip
Scoping + Linking services fixed
Diffstat (limited to 'Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/scoping/ApplicationConfigurationScopeProvider.xtend')
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/scoping/ApplicationConfigurationScopeProvider.xtend32
1 files changed, 23 insertions, 9 deletions
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/scoping/ApplicationConfigurationScopeProvider.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/scoping/ApplicationConfigurationScopeProvider.xtend
index 97cda4a4..ea0e8d1e 100644
--- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/scoping/ApplicationConfigurationScopeProvider.xtend
+++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/scoping/ApplicationConfigurationScopeProvider.xtend
@@ -19,6 +19,9 @@ import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PatternEl
19import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.AllPatternEntry 19import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.AllPatternEntry
20import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PatternSpecification 20import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PatternSpecification
21import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ViatraImport 21import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ViatraImport
22import com.google.common.base.Function
23import org.eclipse.viatra.query.patternlanguage.patternLanguage.PatternModel
24import org.eclipse.xtext.naming.QualifiedName
22 25
23/** 26/**
24 * This class contains custom scoping description. 27 * This class contains custom scoping description.
@@ -29,21 +32,29 @@ import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ViatraImp
29class ApplicationConfigurationScopeProvider extends AbstractApplicationConfigurationScopeProvider { 32class ApplicationConfigurationScopeProvider extends AbstractApplicationConfigurationScopeProvider {
30 33
31 private val language = ApplicationConfigurationPackage.eINSTANCE 34 private val language = ApplicationConfigurationPackage.eINSTANCE
35 protected val nameConverter = new Function<PatternModel,QualifiedName>() {
36 override apply(PatternModel input) {
37 println(input)
38 val res = QualifiedName.create(input.packageName.split("\\."))
39 println(res.toString)
40 return res
41 }
42 }
32 43
33 override getScope(EObject context, EReference reference) { 44 override getScope(EObject context, EReference reference) {
34 val document = EcoreUtil2.getContainerOfType(context,ConfigurationScript) 45 val document = EcoreUtil2.getContainerOfType(context,ConfigurationScript)
35 if(context instanceof MetamodelElement) { 46 if(context instanceof MetamodelElement) {
36 context.scopeForMetamodelElement(reference,document) 47 return context.scopeForMetamodelElement(reference,document)
37 } else if(context instanceof MetamodelSpecification) { 48 } else if(context instanceof MetamodelSpecification) {
38 context.scopeForMetamodelSpecification(reference,document) 49 return context.scopeForMetamodelSpecification(reference,document)
39 } else if(context instanceof AllPackageEntry){ 50 } else if(context instanceof AllPackageEntry){
40 context.scopeForAllPackageEntry(reference,document) 51 return context.scopeForAllPackageEntry(reference,document)
41 } else if(context instanceof PatternElement) { 52 } else if(context instanceof PatternElement) {
42 context.scopeForPatternElement(reference,document) 53 return context.scopeForPatternElement(reference,document)
43 } else if(context instanceof PatternSpecification) { 54 } else if(context instanceof PatternSpecification) {
44 context.scopeForPatternSpecification(reference,document) 55 return context.scopeForPatternSpecification(reference,document)
45 } else if(context instanceof AllPatternEntry) { 56 } else if(context instanceof AllPatternEntry) {
46 context.scopeForAllPatternEntry(reference,document) 57 return context.scopeForAllPatternEntry(reference,document)
47 } else { 58 } else {
48 return super.getScope(context,reference) 59 return super.getScope(context,reference)
49 } 60 }
@@ -111,11 +122,13 @@ class ApplicationConfigurationScopeProvider extends AbstractApplicationConfigura
111 } 122 }
112 } 123 }
113 124
125 // Todo [] scope
126
114 ////////// 127 //////////
115 128
116 protected def scopeForPatternElement(PatternElement context, EReference reference, ConfigurationScript document) { 129 protected def scopeForPatternElement(PatternElement context, EReference reference, ConfigurationScript document) {
117 if(reference === language.patternEntry_Package) { 130 if(reference === language.patternEntry_Package) {
118 return Scopes.scopeFor(document.allViatraPackages) 131 return Scopes.scopeFor(document.allViatraPackages,nameConverter,super.getScope(context,reference))
119 } else if(reference === language.patternElement_Pattern) { 132 } else if(reference === language.patternElement_Pattern) {
120 if(context.package !== null) { 133 if(context.package !== null) {
121 return Scopes.scopeFor(context.package.patterns) 134 return Scopes.scopeFor(context.package.patterns)
@@ -129,7 +142,7 @@ class ApplicationConfigurationScopeProvider extends AbstractApplicationConfigura
129 142
130 protected def scopeForPatternSpecification(PatternSpecification context, EReference reference, ConfigurationScript document) { 143 protected def scopeForPatternSpecification(PatternSpecification context, EReference reference, ConfigurationScript document) {
131 if(reference === language.patternEntry_Package) { 144 if(reference === language.patternEntry_Package) {
132 return Scopes.scopeFor(document.allViatraPackages) 145 return Scopes.scopeFor(document.allViatraPackages,nameConverter,super.getScope(context,reference))
133 } else if(reference ===language.patternElement_Pattern) { 146 } else if(reference ===language.patternElement_Pattern) {
134 return Scopes.scopeFor(document.allPatterns) 147 return Scopes.scopeFor(document.allPatterns)
135 } else { 148 } else {
@@ -139,7 +152,8 @@ class ApplicationConfigurationScopeProvider extends AbstractApplicationConfigura
139 152
140 protected def scopeForAllPatternEntry(AllPatternEntry context, EReference reference, ConfigurationScript document) { 153 protected def scopeForAllPatternEntry(AllPatternEntry context, EReference reference, ConfigurationScript document) {
141 if(reference === language.patternEntry_Package) { 154 if(reference === language.patternEntry_Package) {
142 return Scopes.scopeFor(document.allViatraPackages) 155 val res = Scopes.scopeFor(document.allViatraPackages,nameConverter,super.getScope(context,reference))
156 return res
143 } else if(reference === language.patternElement_Pattern) { 157 } else if(reference === language.patternElement_Pattern) {
144 if(context.package === null) { 158 if(context.package === null) {
145 return Scopes.scopeFor(document.allPatterns) 159 return Scopes.scopeFor(document.allPatterns)