Package org.eclipse.jdt.internal.core.util

Examples of org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject


      && resourcePath.charAt(rootPathLength) == '/')) {
    PackageFragmentRoot root = (PackageFragmentRoot) ((AbstractJavaSearchScope)this.scope).packageFragmentRoot(resourcePath, -1/*not a jar*/, null/*no jar path*/);
    if (root == null) return null;
    this.lastPkgFragmentRoot = root;
    this.lastPkgFragmentRootPath = root.internalPath().toString();
    this.packageHandles = new HashtableOfArrayToObject(5);
  }
  // create handle
  resourcePath = resourcePath.substring(this.lastPkgFragmentRootPath.length() + 1);
  String[] simpleNames = new Path(resourcePath).segments();
  String[] pkgName;
View Full Code Here


   * The given project is assumed to be the handle of this info.
   * This name lookup first looks in the given working copies.
   */
  NameLookup newNameLookup(JavaProject project, ICompilationUnit[] workingCopies) {
    ProjectCache cache = getProjectCache(project);
    HashtableOfArrayToObject allPkgFragmentsCache = cache.allPkgFragmentsCache;
    if (allPkgFragmentsCache == null) {
      HashMap rootInfos = JavaModelManager.getJavaModelManager().deltaState.roots;
      IPackageFragmentRoot[] allRoots = cache.allPkgFragmentRootsCache;
      int length = allRoots.length;
      allPkgFragmentsCache = new HashtableOfArrayToObject();
      for (int i = 0; i < length; i++) {
        IPackageFragmentRoot root = allRoots[i];
        DeltaProcessor.RootInfo rootInfo = (DeltaProcessor.RootInfo) rootInfos.get(root.getPath());
        JavaProject rootProject = rootInfo == null ? project : rootInfo.project;
        HashSetOfArray fragmentsCache;
        if (rootProject.equals(project)) {
          // retrieve package fragments cache from this project
          fragmentsCache = (HashSetOfArray) cache.pkgFragmentsCaches.get(root);
        } else {
          // retrieve package fragments  cache from the root's project
          ProjectCache rootProjectCache;
          try {
            rootProjectCache = rootProject.getProjectCache();
          } catch (JavaModelException e) {
            // project doesn't exit
            continue;
          }
          fragmentsCache = (HashSetOfArray) rootProjectCache.pkgFragmentsCaches.get(root);
        }
        if (fragmentsCache == null) { // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=183833
          fragmentsCache = new HashSetOfArray();
          initializePackageNames(root, fragmentsCache);
        }
        Object[][] set = fragmentsCache.set;
        for (int j = 0, length2 = set.length; j < length2; j++) {
          String[] pkgName = (String[]) set[j];
          if (pkgName == null)
            continue;
          Object existing = allPkgFragmentsCache.get(pkgName);
          if (existing == null || existing == NO_ROOTS) {
            allPkgFragmentsCache.put(pkgName, root);
            // ensure super packages (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=119161)
            // are also in the map
            addSuperPackageNames(pkgName, allPkgFragmentsCache);
          } else {
            if (existing instanceof PackageFragmentRoot) {
              allPkgFragmentsCache.put(pkgName, new IPackageFragmentRoot[] {(PackageFragmentRoot) existing, root});
            } else {
              IPackageFragmentRoot[] roots = (IPackageFragmentRoot[]) existing;
              int rootLength = roots.length;
              System.arraycopy(roots, 0, roots = new IPackageFragmentRoot[rootLength+1], 0, rootLength);
              roots[rootLength] = root;
              allPkgFragmentsCache.put(pkgName, roots);
            }
          }
        }
      }
      cache.allPkgFragmentsCache = allPkgFragmentsCache;
View Full Code Here

TOP

Related Classes of org.eclipse.jdt.internal.core.util.HashtableOfArrayToObject

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.