diff options
author | ArenBabikian <aren.babikian@mail.mcgill.ca> | 2019-02-17 15:12:05 -0500 |
---|---|---|
committer | ArenBabikian <aren.babikian@mail.mcgill.ca> | 2019-02-17 15:12:05 -0500 |
commit | 2e5968a5162b04d33eb1d3a60dd394b68583a4b6 (patch) | |
tree | d3797fcf89614b1f7c69917dc6849585dd555fad /Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/linking/ApplicationConfigurationLinkingService.xtend | |
parent | Commit before merge (diff) | |
parent | Created new module to load referred patterns. hacked metamodel linking. (diff) | |
download | VIATRA-Generator-2e5968a5162b04d33eb1d3a60dd394b68583a4b6.tar.gz VIATRA-Generator-2e5968a5162b04d33eb1d3a60dd394b68583a4b6.tar.zst VIATRA-Generator-2e5968a5162b04d33eb1d3a60dd394b68583a4b6.zip |
Merge remote-tracking branch 'origin/master' into Vampire-New
Merge Oszkar's Java-related commit
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.xtend | 33 |
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 | |||
20 | import org.eclipse.xtext.linking.impl.DefaultLinkingService | 20 | import org.eclipse.xtext.linking.impl.DefaultLinkingService |
21 | import org.eclipse.xtext.nodemodel.ILeafNode | 21 | import org.eclipse.xtext.nodemodel.ILeafNode |
22 | import org.eclipse.xtext.nodemodel.INode | 22 | import org.eclipse.xtext.nodemodel.INode |
23 | import org.eclipse.emf.ecore.resource.ResourceSet | ||
24 | import org.eclipse.emf.ecore.EPackage | ||
23 | 25 | ||
24 | class ApplicationConfigurationLinkingService extends DefaultLinkingService{ | 26 | class 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) { |