diff options
Diffstat (limited to 'Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/scoping')
-rw-r--r-- | Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/scoping/ApplicationConfigurationScopeProvider.xtend | 32 |
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 | |||
19 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.AllPatternEntry | 19 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.AllPatternEntry |
20 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PatternSpecification | 20 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PatternSpecification |
21 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ViatraImport | 21 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ViatraImport |
22 | import com.google.common.base.Function | ||
23 | import org.eclipse.viatra.query.patternlanguage.patternLanguage.PatternModel | ||
24 | import 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 | |||
29 | class ApplicationConfigurationScopeProvider extends AbstractApplicationConfigurationScopeProvider { | 32 | class 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) |