Example usage for org.eclipse.jdt.internal.core JavaElement resource

List of usage examples for org.eclipse.jdt.internal.core JavaElement resource

Introduction

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

Prototype

public abstract IResource resource();

Source Link

Usage

From source file:org.eclipse.che.jdt.internal.core.JavaModelManager.java

License:Open Source License

private void secondaryTypesRemoving(Hashtable secondaryTypesMap, File file) {
    if (VERBOSE) {
        StringBuffer buffer = new StringBuffer("JavaModelManager.removeSecondaryTypesFromMap("); //$NON-NLS-1$
        Iterator entries = secondaryTypesMap.entrySet().iterator();
        while (entries.hasNext()) {
            Map.Entry entry = (Map.Entry) entries.next();
            String qualifiedName = (String) entry.getKey();
            buffer.append(qualifiedName + ':' + entry.getValue());
        }// w  w  w .  jav  a  2s .c o m
        buffer.append(',');
        buffer.append(file.getAbsolutePath());
        buffer.append(')');
        Util.verbose(buffer.toString());
    }
    Set packageEntries = secondaryTypesMap.entrySet();
    int packagesSize = packageEntries.size(), removedPackagesCount = 0;
    String[] removedPackages = null;
    Iterator packages = packageEntries.iterator();
    while (packages.hasNext()) {
        Map.Entry entry = (Map.Entry) packages.next();
        String packName = (String) entry.getKey();
        if (packName != INDEXED_SECONDARY_TYPES) { // skip indexing cache entry if present (!= is intentional)
            HashMap types = (HashMap) entry.getValue();
            Set nameEntries = types.entrySet();
            int namesSize = nameEntries.size(), removedNamesCount = 0;
            String[] removedNames = null;
            Iterator names = nameEntries.iterator();
            while (names.hasNext()) {
                Map.Entry entry2 = (Map.Entry) names.next();
                String typeName = (String) entry2.getKey();
                JavaElement type = (JavaElement) entry2.getValue();
                if (file.equals(type.resource())) {
                    if (removedNames == null)
                        removedNames = new String[namesSize];
                    namesSize--;
                    removedNames[removedNamesCount++] = typeName;
                }
            }
            if (removedNames != null) {
                for (int i = 0; i < removedNamesCount; i++) {
                    types.remove(removedNames[i]);
                }
            }
            if (types.size() == 0) {
                if (removedPackages == null)
                    removedPackages = new String[packagesSize];
                packagesSize--;
                removedPackages[removedPackagesCount++] = packName;
            }
        }
    }
    if (removedPackages != null) {
        for (int i = 0; i < removedPackagesCount; i++) {
            secondaryTypesMap.remove(removedPackages[i]);
        }
    }
    if (VERBOSE) {
        Util.verbose("   - new secondary types map:"); //$NON-NLS-1$
        Iterator entries = secondaryTypesMap.entrySet().iterator();
        while (entries.hasNext()) {
            Map.Entry entry = (Map.Entry) entries.next();
            String qualifiedName = (String) entry.getKey();
            Util.verbose("      + " + qualifiedName + ':' + entry.getValue()); //$NON-NLS-1$
        }
    }
}

From source file:org.eclipse.jdt.internal.core.JavaModelManager.java

License:Open Source License

private void secondaryTypesRemoving(Hashtable secondaryTypesMap, IFile file) {
    if (VERBOSE) {
        StringBuffer buffer = new StringBuffer("JavaModelManager.removeSecondaryTypesFromMap("); //$NON-NLS-1$
        Iterator entries = secondaryTypesMap.entrySet().iterator();
        while (entries.hasNext()) {
            Map.Entry entry = (Map.Entry) entries.next();
            String qualifiedName = (String) entry.getKey();
            buffer.append(qualifiedName + ':' + entry.getValue());
        }/*w w  w .  j av  a 2s.c o m*/
        buffer.append(',');
        buffer.append(file.getFullPath());
        buffer.append(')');
        Util.verbose(buffer.toString());
    }
    Set packageEntries = secondaryTypesMap.entrySet();
    int packagesSize = packageEntries.size(), removedPackagesCount = 0;
    String[] removedPackages = null;
    Iterator packages = packageEntries.iterator();
    while (packages.hasNext()) {
        Map.Entry entry = (Map.Entry) packages.next();
        String packName = (String) entry.getKey();
        if (packName != INDEXED_SECONDARY_TYPES) { // skip indexing cache entry if present (!= is intentional)
            HashMap types = (HashMap) entry.getValue();
            Set nameEntries = types.entrySet();
            int namesSize = nameEntries.size(), removedNamesCount = 0;
            String[] removedNames = null;
            Iterator names = nameEntries.iterator();
            while (names.hasNext()) {
                Map.Entry entry2 = (Map.Entry) names.next();
                String typeName = (String) entry2.getKey();
                JavaElement type = (JavaElement) entry2.getValue();
                if (file.equals(type.resource())) {
                    if (removedNames == null)
                        removedNames = new String[namesSize];
                    namesSize--;
                    removedNames[removedNamesCount++] = typeName;
                }
            }
            if (removedNames != null) {
                for (int i = 0; i < removedNamesCount; i++) {
                    types.remove(removedNames[i]);
                }
            }
            if (types.size() == 0) {
                if (removedPackages == null)
                    removedPackages = new String[packagesSize];
                packagesSize--;
                removedPackages[removedPackagesCount++] = packName;
            }
        }
    }
    if (removedPackages != null) {
        for (int i = 0; i < removedPackagesCount; i++) {
            secondaryTypesMap.remove(removedPackages[i]);
        }
    }
    if (VERBOSE) {
        Util.verbose("   - new secondary types map:"); //$NON-NLS-1$
        Iterator entries = secondaryTypesMap.entrySet().iterator();
        while (entries.hasNext()) {
            Map.Entry entry = (Map.Entry) entries.next();
            String qualifiedName = (String) entry.getKey();
            Util.verbose("      + " + qualifiedName + ':' + entry.getValue()); //$NON-NLS-1$
        }
    }
}