Example usage for org.eclipse.jdt.core ITypeHierarchy addTypeHierarchyChangedListener

List of usage examples for org.eclipse.jdt.core ITypeHierarchy addTypeHierarchyChangedListener

Introduction

In this page you can find the example usage for org.eclipse.jdt.core ITypeHierarchy addTypeHierarchyChangedListener.

Prototype

void addTypeHierarchyChangedListener(ITypeHierarchyChangedListener listener);

Source Link

Document

Adds the given listener for changes to this type hierarchy.

Usage

From source file:com.google.gdt.eclipse.core.TypeHierarchyCache.java

License:Open Source License

public synchronized ITypeHierarchy getHierarchy(IType type) throws JavaModelException {
    // Return from the cache if available
    if (hierarchies.containsKey(type)) {
        return hierarchies.get(type);
    }/*from  w w w . j a v a 2 s.c o m*/
    // Create an auto-updating type hierarchy and cache it
    ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
    hierarchy.addTypeHierarchyChangedListener(hierarchyUpdater);
    hierarchies.put(type, hierarchy);

    return hierarchy;
}

From source file:org.hawkinssoftware.rns.analysis.compile.source.TypeHierarchyCache.java

License:Open Source License

public void put(String typename, ITypeHierarchy hierarchy) {
    modifiedHierarchies.remove(typename);

    ITypeHierarchy existing = hierarchiesByTypename.get(typename);
    if (existing != null) {
        existing.removeTypeHierarchyChangedListener(listener);
    }/*from  w  w w . j av  a 2 s  .c  om*/
    hierarchiesByTypename.put(typename, hierarchy);
    hierarchy.addTypeHierarchyChangedListener(listener);
}

From source file:org.hawkinssoftware.rns.analysis.compile.source.TypeHierarchyCache.java

License:Open Source License

public ITypeHierarchy establishHierarchy(IType type) {
    try {/*from  w  ww .  j a va2  s . c om*/
        ITypeHierarchy hierarchy = get(type.getFullyQualifiedName());
        if (hierarchy == null) {
            hierarchy = type.newTypeHierarchy(null);
            hierarchy.addTypeHierarchyChangedListener(listener);
            hierarchiesByTypename.put(type.getFullyQualifiedName(), hierarchy);
        }
        return hierarchy;
    } catch (CoreException e) {
        hierarchiesByTypename.remove(type.getFullyQualifiedName());
        Log.out(Tag.CRITICAL, e, "Failed to generate the type hierarchy for type %s",
                type.getTypeQualifiedName());
        return null;
    }
}