Skip to content

Commit

Permalink
Avoid NPE when eResource isn't initialized yet
Browse files Browse the repository at this point in the history
  • Loading branch information
Thomas Degueule committed Feb 5, 2015
1 parent 660a901 commit 153562d
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 14 deletions.
Expand Up @@ -343,8 +343,12 @@ class MetamodelExtensions
}

def IProject getProject(Metamodel mm) {
val platformString = mm.eResource.URI.toPlatformString(true)
return ResourcesPlugin.workspace.root.getFile(new Path(platformString)).project
val res = mm.eResource

return
if (res !== null)
ResourcesPlugin.workspace.root.getFile(new Path(res.URI.toPlatformString(true))).project
else null
}

def private void createEcore(Metamodel mm, String uri) {
Expand Down
Expand Up @@ -41,12 +41,13 @@ class EPackageProvider
def List<EPackage> getPackages(ModelingElement m) {
if (!packages.containsKey(m)) {
if (m instanceof Metamodel) {
try {
if (m.project.getFile(m.localEcorePath).exists)
m.ecoreUri = m.localEcoreUri
else if (m.project.getFile(m.externalEcorePath).exists)
m.ecoreUri = m.externalEcoreUri
} catch (IllegalStateException e) {}
if (m.project !== null)
try {
if (m.project.getFile(m.localEcorePath).exists)
m.ecoreUri = m.localEcoreUri
else if (m.project.getFile(m.externalEcorePath).exists)
m.ecoreUri = m.externalEcoreUri
} catch (IllegalStateException e) {}
}

switch (m) {
Expand Down Expand Up @@ -97,12 +98,13 @@ class EPackageProvider
if (mm.genmodelUris.size == 0 && mm.ecoreUri !== null)
mm.genmodelUris += mm.ecoreUri.substring(0, mm.ecoreUri.lastIndexOf(".")) + ".genmodel"
else {
try {
if (mm.project.getFile(mm.localGenmodelPath).exists)
mm.genmodelUris += mm.localGenmodelUri
else if (mm.project.getFile(mm.externalGenmodelPath).exists)
mm.genmodelUris += mm.externalGenmodelUri
} catch (IllegalStateException e) {}
if (mm.project !== null)
try {
if (mm.project.getFile(mm.localGenmodelPath).exists)
mm.genmodelUris += mm.localGenmodelUri
else if (mm.project.getFile(mm.externalGenmodelPath).exists)
mm.genmodelUris += mm.externalGenmodelUri
} catch (IllegalStateException e) {}
}
mm.genmodelUris.forEach[genmodels.put(mm, modelUtils.loadGenmodel(it))]
}
Expand Down

0 comments on commit 153562d

Please sign in to comment.