private PackageCache getPackageCache(IPackageFragmentRoot root) { PackageCache packageCacheOfRoot; synchronized (packageCaches) { packageCacheOfRoot= packageCaches.get(root); if (packageCacheOfRoot == null) { packageCacheOfRoot= new PackageCache(root); packageCaches.put(root, packageCacheOfRoot); } } return packageCacheOfRoot; }
private void initialize() throws JavaModelException { if (!initialized) { collectChildrenOfPackages(); initialized= true; } }
/** * @return {@code true} iff the specified fragment has exactly one child. * * @param packageFragment The fragment for which to check. * @throws JavaModelException If accessing the packages in the package root fails. * * @see #getSingleChild(IPackageFragment) */ public boolean hasSingleChild(IPackageFragment packageFragment) throws JavaModelException { IPackageFragment singleChild= getSingleChild(packageFragment); boolean hasSingleChild= singleChild != null; return hasSingleChild; }
/** * @return The single child of the specified package or {@code null} if the package does not have * exactly one child. * * @param packageFragment The single child of this fragment will be retrieved. * @throws JavaModelException If accessing the packages in the package root fails. * * @see #getDirectChildren(IPackageFragment) */ public IPackageFragment getSingleChild(IPackageFragment packageFragment) throws JavaModelException { List<IPackageFragment> children= getDirectChildren(packageFragment); boolean hasSingleChild= children.size() == 1; if (hasSingleChild) { IPackageFragment singleChild= children.get(0); return singleChild; } return null; }
boolean hasSingleChild(IPackageFragment packageFragment) throws JavaModelException { PackageCache packagesOfRoot= getPackageCache(packageFragment); return packagesOfRoot.hasSingleChild(packageFragment); }
initialize(); String packageName= packageFragment.getElementName(); List<IPackageFragment> childrenOfPackage= packagesCache.get(packageName);
List<IPackageFragment> getDirectChildren(IPackageFragment packageFragment) throws JavaModelException { PackageCache packagesOfRoot= getPackageCache(packageFragment); return packagesOfRoot.getDirectChildren(packageFragment); }
IPackageFragment getSingleChild(IPackageFragment packageFragment) throws JavaModelException { PackageCache packagesOfRoot= getPackageCache(packageFragment); return packagesOfRoot.getSingleChild(packageFragment); }