aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar OszkarSemerath <oszkar.semerath@gmail.com>2018-02-19 19:52:49 -0500
committerLibravatar OszkarSemerath <oszkar.semerath@gmail.com>2018-02-19 19:52:49 -0500
commit041a0e39fa419a378df624b0d5a3bce4a3722262 (patch)
tree913e54b8311125529e4a46e707cc1d678e3a500e
parentgitignores for generated files (diff)
downloadVIATRA-Generator-041a0e39fa419a378df624b0d5a3bce4a3722262.tar.gz
VIATRA-Generator-041a0e39fa419a378df624b0d5a3bce4a3722262.tar.zst
VIATRA-Generator-041a0e39fa419a378df624b0d5a3bce4a3722262.zip
Working injector for linking viatra and emf execution time.
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/META-INF/MANIFEST.MF3
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/ApplicationConfigurationRuntimeModule.xtend10
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptConsole.xtend14
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptExecutor.xtend55
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/util/VQLParser.xtend7
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/execution/util/.gitignore1
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/linking/.gitignore3
7 files changed, 78 insertions, 15 deletions
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/META-INF/MANIFEST.MF b/Application/hu.bme.mit.inf.dslreasoner.application/META-INF/MANIFEST.MF
index e24ba457..eda46b08 100644
--- a/Application/hu.bme.mit.inf.dslreasoner.application/META-INF/MANIFEST.MF
+++ b/Application/hu.bme.mit.inf.dslreasoner.application/META-INF/MANIFEST.MF
@@ -28,7 +28,8 @@ Require-Bundle: org.eclipse.xtext,
28 org.eclipse.viatra.query.patternlanguage;bundle-version="1.7.0", 28 org.eclipse.viatra.query.patternlanguage;bundle-version="1.7.0",
29 org.eclipse.viatra.query.patternlanguage.emf;bundle-version="1.7.0", 29 org.eclipse.viatra.query.patternlanguage.emf;bundle-version="1.7.0",
30 org.eclipse.viatra.query.runtime;bundle-version="1.7.0", 30 org.eclipse.viatra.query.runtime;bundle-version="1.7.0",
31 org.eclipse.emf.codegen;bundle-version="2.11.0" 31 org.eclipse.emf.codegen;bundle-version="2.11.0",
32 org.eclipse.viatra.query.tooling.core;bundle-version="2.0.0"
32Bundle-RequiredExecutionEnvironment: JavaSE-1.8 33Bundle-RequiredExecutionEnvironment: JavaSE-1.8
33Export-Package: hu.bme.mit.inf.dslreasoner.application, 34Export-Package: hu.bme.mit.inf.dslreasoner.application,
34 hu.bme.mit.inf.dslreasoner.application.applicationConfiguration, 35 hu.bme.mit.inf.dslreasoner.application.applicationConfiguration,
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/ApplicationConfigurationRuntimeModule.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/ApplicationConfigurationRuntimeModule.xtend
index 59b2f3f8..f3ba89ad 100644
--- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/ApplicationConfigurationRuntimeModule.xtend
+++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/ApplicationConfigurationRuntimeModule.xtend
@@ -15,6 +15,9 @@ import org.eclipse.viatra.query.patternlanguage.emf.scoping.IMetamodelProvider
15import org.eclipse.viatra.query.patternlanguage.emf.scoping.IMetamodelProviderInstance 15import org.eclipse.viatra.query.patternlanguage.emf.scoping.IMetamodelProviderInstance
16import org.eclipse.viatra.query.patternlanguage.emf.scoping.MetamodelProviderService 16import org.eclipse.viatra.query.patternlanguage.emf.scoping.MetamodelProviderService
17import org.eclipse.viatra.query.patternlanguage.emf.scoping.ResourceSetMetamodelProviderService 17import org.eclipse.viatra.query.patternlanguage.emf.scoping.ResourceSetMetamodelProviderService
18import org.eclipse.viatra.query.tooling.core.targetplatform.TargetPlatformMetamodelProviderService
19import org.eclipse.viatra.query.tooling.core.targetplatform.ITargetPlatformMetamodelLoader
20import org.eclipse.viatra.query.tooling.core.targetplatform.TargetPlatformMetamodelsIndex
18 21
19/** 22/**
20 * Use this class to register components to be used at runtime / without the Equinox extension registry. 23 * Use this class to register components to be used at runtime / without the Equinox extension registry.
@@ -36,8 +39,9 @@ class ApplicationConfigurationRuntimeModule extends AbstractApplicationConfigura
36 val metamodelProviderBinder = Multibinder.newSetBinder(binder, IMetamodelProviderInstance) 39 val metamodelProviderBinder = Multibinder.newSetBinder(binder, IMetamodelProviderInstance)
37 metamodelProviderBinder.addBinding.to(MetamodelProviderService) 40 metamodelProviderBinder.addBinding.to(MetamodelProviderService)
38 metamodelProviderBinder.addBinding.to(ResourceSetMetamodelProviderService) 41 metamodelProviderBinder.addBinding.to(ResourceSetMetamodelProviderService)
42 metamodelProviderBinder.addBinding.to(TargetPlatformMetamodelProviderService)
39 } 43 }
40 44
41 def Class<? extends IGenmodelMappingLoader> bindIGenmodelMappingLoader() { 45 def Class<? extends IGenmodelMappingLoader> bindIGenmodelMappingLoader() {
42 GenmodelExtensionLoader 46 GenmodelExtensionLoader
43 } 47 }
@@ -46,6 +50,10 @@ class ApplicationConfigurationRuntimeModule extends AbstractApplicationConfigura
46 ApplicationConfigurationValueConverterService 50 ApplicationConfigurationValueConverterService
47 } 51 }
48 52
53 def Class<? extends ITargetPlatformMetamodelLoader> bindITargetPlatformMetamodelLoader() {
54 TargetPlatformMetamodelsIndex
55 }
56
49// override bindIQualifiedNameProvider() { 57// override bindIQualifiedNameProvider() {
50// ApplicationConfigurationQualifiedNameProvider 58// ApplicationConfigurationQualifiedNameProvider
51// } 59// }
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptConsole.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptConsole.xtend
index 77c5252a..24f77754 100644
--- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptConsole.xtend
+++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ScriptConsole.xtend
@@ -90,12 +90,16 @@ class ScriptConsole implements Closeable {
90 } 90 }
91 91
92 private def prepareFile(URI uri) { 92 private def prepareFile(URI uri) {
93 val fileString = uri.toFileString 93 if (uri === null) {
94 val file = new File(fileString) 94 return null
95 if(this.cleanFiles && file.exists) { 95 } else {
96 file.delete 96 val fileString = uri.toFileString
97 val file = new File(fileString)
98 if (this.cleanFiles && file.exists) {
99 file.delete
100 }
101 return file
97 } 102 }
98 return file
99 } 103 }
100 104
101 override close() throws IOException { 105 override close() throws IOException {
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 @@
1package hu.bme.mit.inf.dslreasoner.application.execution 1package hu.bme.mit.inf.dslreasoner.application.execution
2 2
3import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ConfigReference
4import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ConfigSpecification
3import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ConfigurationScript 5import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ConfigurationScript
6import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.FileReference
7import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.FileSpecification
4import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.GenerationTask 8import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.GenerationTask
5import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.GraphPatternReference 9import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.GraphPatternReference
6import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.MetamodelReference 10import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.MetamodelReference
@@ -8,30 +12,65 @@ import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.Metamodel
8import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PartialModelReference 12import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PartialModelReference
9import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PartialModelSpecification 13import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PartialModelSpecification
10import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PatternSpecification 14import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PatternSpecification
11import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.Task
12import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.FileSpecification
13import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.FileReference
14import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ScopeSpecification
15import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ScopeReference 15import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ScopeReference
16import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ConfigSpecification 16import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ScopeSpecification
17import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ConfigReference 17import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.Task
18import hu.bme.mit.inf.dslreasoner.application.execution.util.ApplicationConfigurationParser
18import java.util.LinkedHashMap 19import java.util.LinkedHashMap
20import org.eclipse.emf.common.util.URI
21import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.EPackageImport
19 22
20class ScriptExecutor { 23class 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) {
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/util/VQLParser.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/util/VQLParser.xtend
index e6d516f4..f85e3dcf 100644
--- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/util/VQLParser.xtend
+++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/util/VQLParser.xtend
@@ -21,6 +21,9 @@ import org.eclipse.viatra.query.patternlanguage.emf.specification.SpecificationB
21import org.eclipse.viatra.query.runtime.api.IQuerySpecification 21import org.eclipse.viatra.query.runtime.api.IQuerySpecification
22import org.eclipse.xtext.resource.XtextResourceSet 22import org.eclipse.xtext.resource.XtextResourceSet
23import hu.bme.mit.inf.dslreasoner.application.execution.ScriptConsole 23import hu.bme.mit.inf.dslreasoner.application.execution.ScriptConsole
24import org.eclipse.viatra.query.patternlanguage.emf.scoping.IMetamodelProvider
25import hu.bme.mit.inf.dslreasoner.application.linking.PreloadedMetamodelProvider
26import org.eclipse.viatra.query.patternlanguage.emf.scoping.CompoundMetamodelProviderService
24 27
25class MyModule extends EMFPatternLanguageRuntimeModule implements Module { 28class MyModule extends EMFPatternLanguageRuntimeModule implements Module {
26 def public Class<? extends IAnnotationValidatorLoader> bindAnnotationValidatorLoader() { 29 def public Class<? extends IAnnotationValidatorLoader> bindAnnotationValidatorLoader() {
@@ -29,6 +32,10 @@ class MyModule extends EMFPatternLanguageRuntimeModule implements Module {
29 def public Class<? extends IGenmodelMappingLoader> bindGenmodelMappingLoader() { 32 def public Class<? extends IGenmodelMappingLoader> bindGenmodelMappingLoader() {
30 return typeof(GenmodelExtensionLoader); 33 return typeof(GenmodelExtensionLoader);
31 } 34 }
35 override Class<? extends IMetamodelProvider> bindIMetamodelProvider() {
36 CompoundMetamodelProviderService
37 // PreloadedMetamodelProvider
38 }
32} 39}
33 40
34class VQLParser { 41class VQLParser {
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/execution/util/.gitignore b/Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/execution/util/.gitignore
index cf5eb575..62c87eec 100644
--- a/Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/execution/util/.gitignore
+++ b/Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/execution/util/.gitignore
@@ -3,3 +3,4 @@
3/.VQLParser.xtendbin 3/.VQLParser.xtendbin
4/MyModule.java 4/MyModule.java
5/VQLParser.java 5/VQLParser.java
6/.ApplicationConfigurationParser.java._trace
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/linking/.gitignore b/Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/linking/.gitignore
index d11d1e72..8171c608 100644
--- a/Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/linking/.gitignore
+++ b/Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/linking/.gitignore
@@ -1,3 +1,6 @@
1/.ApplicationConfigurationLinkingService.java._trace 1/.ApplicationConfigurationLinkingService.java._trace
2/.ApplicationConfigurationLinkingService.xtendbin 2/.ApplicationConfigurationLinkingService.xtendbin
3/ApplicationConfigurationLinkingService.java 3/ApplicationConfigurationLinkingService.java
4/.SimilarLoadedMetamodelProvider.java._trace
5/.ResourceSetBasedMetamodelProvider.java._trace
6/.PreloadedMetamodelProvider.java._trace