List of usage examples for org.eclipse.jdt.internal.core JavaModelManager getExistingElement
public synchronized IJavaElement getExistingElement(IJavaElement element)
From source file:com.codenvy.ide.ext.java.server.internal.core.JavaProjectElementInfo.java
License:Open Source License
ProjectCache getProjectCache(JavaProject project) {
ProjectCache cache = this.projectCache;
if (cache == null) {
IPackageFragmentRoot[] roots;/* w w w . ja v a 2 s.co m*/
Map reverseMap = new HashMap(3);
try {
roots = project.getAllPackageFragmentRoots(reverseMap);
} catch (JavaModelException e) {
// project does not exist: cannot happen since this is the info of the project
roots = new IPackageFragmentRoot[0];
reverseMap.clear();
}
// HashMap rootInfos = JavaModelManager.getJavaModelManager().deltaState.roots;
HashMap pkgFragmentsCaches = new HashMap();
int length = roots.length;
JavaModelManager manager = project.manager; //JavaModelManager.getJavaModelManager();
for (int i = 0; i < length; i++) {
IPackageFragmentRoot root = roots[i];
DeltaProcessor.RootInfo rootInfo = null;// (DeltaProcessor.RootInfo) rootInfos.get(root.getPath());
if (rootInfo == null || rootInfo.project.equals(project)) {
// ensure that an identical root is used (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=217059 )
roots[i] = root = (IPackageFragmentRoot) manager.getExistingElement(root);
// compute fragment cache
HashSetOfArray fragmentsCache = new HashSetOfArray();
initializePackageNames(root, fragmentsCache);
pkgFragmentsCaches.put(root, fragmentsCache);
}
}
cache = new ProjectCache(roots, reverseMap, pkgFragmentsCaches);
this.projectCache = cache;
}
return cache;
}