Skip to content

Commit

Permalink
TEIIDDES-1738 changed existing object check to use relative model pat…
Browse files Browse the repository at this point in the history
…h rather than URI
  • Loading branch information
blafond committed Jun 24, 2013
1 parent f50c7e0 commit 87776df
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 4 deletions.
4 changes: 3 additions & 1 deletion plugins/org.teiid.designer.roles.ui/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,9 @@ Require-Bundle: org.eclipse.ui;bundle-version="[3.103.0,4.0.0)",
org.teiid.designer.metamodels.xml;bundle-version="[8.1.0,9.0.0)",
org.teiid.designer.metamodels.webservice;bundle-version="[8.1.0,9.0.0)",
org.teiid.designer.metamodels.function;bundle-version="[8.1.0,9.0.0)",
org.teiid.designer.spi;bundle-version="[8.1.0,9.0.0)"
org.teiid.designer.spi;bundle-version="[8.1.0,9.0.0)",
org.teiid.designer.metamodels.diagram;bundle-version="8.1.0",
org.teiid.designer.metamodels.transformation;bundle-version="8.1.0"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Export-Package: org.teiid.designer.roles.ui
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,18 @@

import java.util.ArrayList;
import java.util.Collection;

import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.teiid.core.designer.util.CoreStringUtil;
import org.teiid.designer.core.ModelerCore;
import org.teiid.designer.core.container.Container;
import org.teiid.designer.metamodels.core.AnnotationContainer;
import org.teiid.designer.metamodels.core.ModelAnnotation;
import org.teiid.designer.metamodels.diagram.DiagramContainer;
import org.teiid.designer.metamodels.transformation.TransformationContainer;
import org.teiid.designer.roles.DataRole;
import org.teiid.designer.roles.Permission;

Expand Down Expand Up @@ -78,14 +84,49 @@ private boolean targetStillExists(IPath path) {
return true;
}

URI uri = URI.createURI(path.toString());
Resource resource = null;

for( Resource res : tempContainer.getResources() ) {
String modelName = res.getURI().lastSegment();
if( modelName.equalsIgnoreCase(path.segment(0) + ".xmi")) { //$NON-NLS-1$
resource = res;
break;
}
}

EObject obj = tempContainer.getEObject(uri, false);
EObject obj = null;

if( resource != null ) {
// Build object path in model
IPath fragmentPath = new Path(""); //$NON-NLS-1$
int nSegs = path.segmentCount();
for(int i=1; i< nSegs; i++) {
fragmentPath = fragmentPath.append(path.segment(i));
}

obj = getChildOfResource(resource, fragmentPath);
}

if( obj == null ) {
return false;
}

return true;
}

private EObject getChildOfResource(Resource resource, IPath childPath) {
for( EObject eObj : resource.getContents()) {
if( eObj instanceof AnnotationContainer || eObj instanceof TransformationContainer ||
eObj instanceof DiagramContainer || eObj instanceof ModelAnnotation ) {
// Do nothing
} else {
if(ModelerCore.getModelEditor().getModelRelativePath(eObj).equals(childPath) ) {
return eObj;
} else {
continue;
}
}
}
return null;
}
}

0 comments on commit 87776df

Please sign in to comment.