org.aspectj.org.eclipse.jdt.internal.core.hierarchy
Class RegionBasedTypeHierarchy

java.lang.Object
  extended by org.aspectj.org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy
      extended by org.aspectj.org.eclipse.jdt.internal.core.hierarchy.RegionBasedTypeHierarchy
All Implemented Interfaces:
IElementChangedListener, ITypeHierarchy

public class RegionBasedTypeHierarchy
extends TypeHierarchy


Field Summary
protected  IRegion region
          The region of types for which to build the hierarchy
 
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy
changeCollector, changeListeners, classToSuperclass, computeSubtypes, DEBUG, files, focusType, interfaces, missingTypes, needsRefresh, NO_TYPE, packageRegion, progressMonitor, project, projectRegion, rootClasses, typeFlags, typeToSubtypes, typeToSuperInterfaces, workingCopies
 
Constructor Summary
RegionBasedTypeHierarchy(IRegion region, ICompilationUnit[] workingCopies, IType type, boolean computeSubtypes)
          Creates a TypeHierarchy on the types in the specified region, considering first the given working copies, using the projects in the given region for a name lookup context.
 
Method Summary
protected  void compute()
          Compute this type hierarchy.
protected  void initializeRegions()
          Initializes the file, package and project regions
protected  boolean isAffectedByOpenable(IJavaElementDelta delta, IJavaElement element, int eventType)
          Returns true if the given type delta (a compilation unit delta or a class file delta) could affect this type hierarchy.
 IJavaProject javaProject()
          Returns the java project this hierarchy was created in.
 void pruneDeadBranches()
           
protected  void removeType(IType type)
          Removes all the subtypes of the given type from the type hierarchy, removes its superclass entry and removes the references from its super types.
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy
addInterface, addRootClass, addSubtype, addTypeHierarchyChangedListener, cacheFlags, cacheSuperclass, cacheSuperInterfaces, checkCanceled, contains, elementChanged, exists, fireChange, getAllClasses, getAllInterfaces, getAllSubtypes, getAllSuperclasses, getAllSuperInterfaces, getAllSupertypes, getAllTypes, getCachedFlags, getExtendingInterfaces, getImplementingClasses, getRootClasses, getRootInterfaces, getSubclasses, getSubtypes, getSuperclass, getSuperInterfaces, getSupertypes, getType, growAndAddToArray, growAndAddToArray, hasFineGrainChanges, initialize, isAffected, load, packageRegionContainsSamePackageFragment, readUntil, readUntil, refresh, removeTypeHierarchyChangedListener, store, toString, worked
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

region

protected IRegion region
The region of types for which to build the hierarchy

Constructor Detail

RegionBasedTypeHierarchy

public RegionBasedTypeHierarchy(IRegion region,
                                ICompilationUnit[] workingCopies,
                                IType type,
                                boolean computeSubtypes)
Creates a TypeHierarchy on the types in the specified region, considering first the given working copies, using the projects in the given region for a name lookup context. If a specific type is also specified, the type hierarchy is pruned to only contain the branch including the specified type.

Method Detail

initializeRegions

protected void initializeRegions()
Description copied from class: TypeHierarchy
Initializes the file, package and project regions

Overrides:
initializeRegions in class TypeHierarchy

compute

protected void compute()
                throws JavaModelException,
                       CoreException
Compute this type hierarchy.

Overrides:
compute in class TypeHierarchy
Throws:
JavaModelException
CoreException

isAffectedByOpenable

protected boolean isAffectedByOpenable(IJavaElementDelta delta,
                                       IJavaElement element,
                                       int eventType)
Description copied from class: TypeHierarchy
Returns true if the given type delta (a compilation unit delta or a class file delta) could affect this type hierarchy.

Overrides:
isAffectedByOpenable in class TypeHierarchy
eventType - TODO

javaProject

public IJavaProject javaProject()
Returns the java project this hierarchy was created in.

Overrides:
javaProject in class TypeHierarchy

pruneDeadBranches

public void pruneDeadBranches()

removeType

protected void removeType(IType type)
Removes all the subtypes of the given type from the type hierarchy, removes its superclass entry and removes the references from its super types.