Example usage for org.eclipse.jdt.internal.core JavaProject getAllPackageFragmentRoots

List of usage examples for org.eclipse.jdt.internal.core JavaProject getAllPackageFragmentRoots

Introduction

In this page you can find the example usage for org.eclipse.jdt.internal.core JavaProject getAllPackageFragmentRoots.

Prototype

@Deprecated
    public IPackageFragmentRoot[] getAllPackageFragmentRoots(Map rootToResolvedEntries) throws JavaModelException 

Source Link

Usage

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  .  jav  a2s  . c  o  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;
}