aboutsummaryrefslogtreecommitdiffstats
path: root/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/linking/ApplicationConfigurationLinkingService.xtend
diff options
context:
space:
mode:
Diffstat (limited to 'Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/linking/ApplicationConfigurationLinkingService.xtend')
-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) {