aboutsummaryrefslogtreecommitdiffstats
path: root/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/linking
diff options
context:
space:
mode:
authorLibravatar OszkarSemerath <oszkar.semerath@gmail.com>2019-02-17 19:34:52 +0100
committerLibravatar OszkarSemerath <oszkar.semerath@gmail.com>2019-02-17 19:34:52 +0100
commitcb77845089f6c8171fc3c39a92690dee3671886a (patch)
treeea37e44ec4f2a3a55b01227813e2c23190aa1a60 /Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/linking
parentSolution store diversity requirement set to 1 as default (diff)
downloadVIATRA-Generator-cb77845089f6c8171fc3c39a92690dee3671886a.tar.gz
VIATRA-Generator-cb77845089f6c8171fc3c39a92690dee3671886a.tar.zst
VIATRA-Generator-cb77845089f6c8171fc3c39a92690dee3671886a.zip
Created new module to load referred patterns. hacked metamodel linking.
Diffstat (limited to 'Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/linking')
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/linking/ApplicationConfigurationLinkingService.xtend33
1 files changed, 28 insertions, 5 deletions
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/linking/ApplicationConfigurationLinkingService.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/linking/ApplicationConfigurationLinkingService.xtend
index 41a89e6f..fc4b721a 100644
--- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/linking/ApplicationConfigurationLinkingService.xtend
+++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/linking/ApplicationConfigurationLinkingService.xtend
@@ -20,6 +20,8 @@ import org.eclipse.xtext.conversion.ValueConverterException
20import org.eclipse.xtext.linking.impl.DefaultLinkingService 20import org.eclipse.xtext.linking.impl.DefaultLinkingService
21import org.eclipse.xtext.nodemodel.ILeafNode 21import org.eclipse.xtext.nodemodel.ILeafNode
22import org.eclipse.xtext.nodemodel.INode 22import org.eclipse.xtext.nodemodel.INode
23import org.eclipse.emf.ecore.resource.ResourceSet
24import org.eclipse.emf.ecore.EPackage
23 25
24class ApplicationConfigurationLinkingService extends DefaultLinkingService{ 26class ApplicationConfigurationLinkingService extends DefaultLinkingService{
25 27
@@ -57,11 +59,32 @@ class ApplicationConfigurationLinkingService extends DefaultLinkingService{
57 } 59 }
58 60
59 private def getEPackage(EPackageImport packageImport, ILeafNode node) { 61 private def getEPackage(EPackageImport packageImport, ILeafNode node) {
60 getNSUri(node).flatMap [ uri | 62 val x = getNSUri(node)
61 Optional.ofNullable(metamodelProvider.loadEPackage(uri, packageImport.eResource.resourceSet)) 63 if(x.isPresent) {
62 ].map [ ePackage | 64 val uriString = x.get
63 Collections.singletonList(ePackage as EObject) 65 val epackageByMetamodelProvider = metamodelProvider.loadEPackage(uriString, packageImport.eResource.resourceSet)
64 ].orElse(emptyList) 66 val epackageByMe = ePackageByMe(packageImport.eResource.resourceSet,uriString)
67 //println(epackageByMetamodelProvider)
68 //println(epackageByMe)
69 if(epackageByMetamodelProvider!==null) {
70 return Collections.singletonList(epackageByMetamodelProvider as EObject)
71 } else if(epackageByMe !== null) {
72 return Collections.singletonList(epackageByMe as EObject)
73 } else {
74 emptyList
75 }
76 } else {
77 return emptyList
78 }
79 }
80
81 private def ePackageByMe(ResourceSet rs, String uri) {
82 try {
83 val resource = rs.getResource(URI.createURI(uri), true);
84 return resource.contents.head as EPackage
85 } catch (Exception e) {
86 return null
87 }
65 } 88 }
66 89
67 private def getViatra(ViatraImport viatraImport, INode node) { 90 private def getViatra(ViatraImport viatraImport, INode node) {