diff options
author | OszkarSemerath <oszkar.semerath@gmail.com> | 2018-02-19 19:52:49 -0500 |
---|---|---|
committer | OszkarSemerath <oszkar.semerath@gmail.com> | 2018-02-19 19:52:49 -0500 |
commit | 041a0e39fa419a378df624b0d5a3bce4a3722262 (patch) | |
tree | 913e54b8311125529e4a46e707cc1d678e3a500e /Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptExecutor.xtend | |
parent | gitignores for generated files (diff) | |
download | VIATRA-Generator-041a0e39fa419a378df624b0d5a3bce4a3722262.tar.gz VIATRA-Generator-041a0e39fa419a378df624b0d5a3bce4a3722262.tar.zst VIATRA-Generator-041a0e39fa419a378df624b0d5a3bce4a3722262.zip |
Working injector for linking viatra and emf execution time.
Diffstat (limited to 'Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptExecutor.xtend')
-rw-r--r-- | Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptExecutor.xtend | 55 |
1 files changed, 47 insertions, 8 deletions
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptExecutor.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptExecutor.xtend index 32d44540..c783c9b9 100644 --- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptExecutor.xtend +++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptExecutor.xtend | |||
@@ -1,6 +1,10 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.application.execution | 1 | package hu.bme.mit.inf.dslreasoner.application.execution |
2 | 2 | ||
3 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ConfigReference | ||
4 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ConfigSpecification | ||
3 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ConfigurationScript | 5 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ConfigurationScript |
6 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.FileReference | ||
7 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.FileSpecification | ||
4 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.GenerationTask | 8 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.GenerationTask |
5 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.GraphPatternReference | 9 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.GraphPatternReference |
6 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.MetamodelReference | 10 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.MetamodelReference |
@@ -8,30 +12,65 @@ import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.Metamodel | |||
8 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PartialModelReference | 12 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PartialModelReference |
9 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PartialModelSpecification | 13 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PartialModelSpecification |
10 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PatternSpecification | 14 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PatternSpecification |
11 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.Task | ||
12 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.FileSpecification | ||
13 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.FileReference | ||
14 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ScopeSpecification | ||
15 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ScopeReference | 15 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ScopeReference |
16 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ConfigSpecification | 16 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ScopeSpecification |
17 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ConfigReference | 17 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.Task |
18 | import hu.bme.mit.inf.dslreasoner.application.execution.util.ApplicationConfigurationParser | ||
18 | import java.util.LinkedHashMap | 19 | import java.util.LinkedHashMap |
20 | import org.eclipse.emf.common.util.URI | ||
21 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.EPackageImport | ||
19 | 22 | ||
20 | class ScriptExecutor { | 23 | class ScriptExecutor { |
21 | 24 | val parser = new ApplicationConfigurationParser | |
22 | def static void main(String[] args) { | 25 | def static void main(String[] args) { |
23 | println("generator") | 26 | println("generator") |
24 | } | 27 | } |
25 | 28 | ||
29 | /** | ||
30 | * Executes a script | ||
31 | */ | ||
32 | public def executeScript(URI uri) { | ||
33 | val script = parser.parse(uri) | ||
34 | script.executeScript | ||
35 | } | ||
36 | |||
26 | public def executeScript(ConfigurationScript script) { | 37 | public def executeScript(ConfigurationScript script) { |
38 | script.activateAllEPackageReferences | ||
27 | val tasks = script.commands.filter(Task) | 39 | val tasks = script.commands.filter(Task) |
28 | for(task : tasks.filterNull) { | 40 | for(task : tasks.filterNull) { |
29 | task.execute | 41 | task.execute |
30 | } | 42 | } |
31 | } | 43 | } |
32 | 44 | ||
45 | private def activateAllEPackageReferences(ConfigurationScript script) { | ||
46 | val ecoreImports = script.imports.filter(EPackageImport).toMap[it.importedPackage.nsURI] | ||
47 | val packageRegistry = script.eResource.resourceSet.packageRegistry | ||
48 | for(entry : ecoreImports.entrySet) { | ||
49 | println('''«entry.key» -> «entry.value.importedPackage.name»''') | ||
50 | packageRegistry.put(entry.key,entry.value.importedPackage) | ||
51 | } | ||
52 | |||
53 | // val viatraImports = script.imports.filter(ViatraImport) | ||
54 | // for(viatraImport : viatraImports) { | ||
55 | // val PatternModel importedViatra = viatraImport.importedViatra as PatternModel | ||
56 | // val packagesImportedByViatra = importedViatra.importPackages.packageImport | ||
57 | // for(packageImport : packagesImportedByViatra) { | ||
58 | // val originalPackage = packageImport.EPackage | ||
59 | // if(originalPackage.eIsProxy) { | ||
60 | // println('''Proxy: «originalPackage»''') | ||
61 | // } else if(ecoreImports.containsKey(originalPackage.nsURI)) { | ||
62 | // packageImport.EPackage = ecoreImports.get(originalPackage.nsURI).importedPackage | ||
63 | // println('''Redirected: «originalPackage.nsURI» -> «packageImport.EPackage.name»''') | ||
64 | // } else { | ||
65 | // println('''Unreferred: «originalPackage.name»''') | ||
66 | // } | ||
67 | // } | ||
68 | // } | ||
69 | } | ||
70 | |||
33 | def public dispatch execute(GenerationTask task) { | 71 | def public dispatch execute(GenerationTask task) { |
34 | 72 | val generationTaskExecutor = new GenerationTaskExecutor | |
73 | generationTaskExecutor.executeGenerationTask(task,this) | ||
35 | } | 74 | } |
36 | 75 | ||
37 | def public dispatch execute(Task task) { | 76 | def public dispatch execute(Task task) { |