|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
public interface IClassHierarchy
General interface for a type hierarchy
| Method Summary | |
|---|---|
boolean |
addClass(IClass klass)
|
java.util.Collection<IClass> |
computeSubClasses(TypeReference type)
Return set of all subclasses of type in the Class Hierarchy |
ClassLoaderFactory |
getFactory()
|
java.util.Collection<IClass> |
getImmediateSubclasses(IClass klass)
|
java.util.Set<IClass> |
getImplementors(TypeReference type)
|
java.util.Collection<TypeReference> |
getJavaLangErrorTypes()
Solely for optimization; return a Collection |
java.util.Collection<TypeReference> |
getJavaLangRuntimeExceptionTypes()
Solely for optimization; return a Collection RuntimeException
kind of ugly. |
IClass |
getLeastCommonSuperclass(IClass A,
IClass B)
|
TypeReference |
getLeastCommonSuperclass(TypeReference A,
TypeReference B)
|
IClassLoader |
getLoader(ClassLoaderReference loaderRef)
|
IClassLoader[] |
getLoaders()
|
int |
getNumber(IClass c)
|
int |
getNumberOfClasses()
|
int |
getNumberOfImmediateSubclasses(IClass klass)
|
java.util.Set<IMethod> |
getPossibleTargets(IClass receiverClass,
MethodReference ref)
Find the possible targets of a call to a method reference where the receiver is of a certain type |
java.util.Collection<IMethod> |
getPossibleTargets(MethodReference ref)
Find the possible targets of a call to a method reference |
IClass |
getRootClass()
|
AnalysisScope |
getScope()
|
boolean |
implementsInterface(IClass c,
IClass i)
Does c implement i? |
boolean |
isAssignableFrom(IClass c1,
IClass c2)
Does an expression c1 x := c2 y typecheck? i.e. |
boolean |
isInterface(TypeReference type)
|
boolean |
isRootClass(IClass c)
|
boolean |
isSubclassOf(IClass c,
IClass T)
Is c a subclass of T? |
IClass |
lookupClass(TypeReference A)
Load a class using one of the loaders specified for this class hierarchy |
IField |
resolveField(FieldReference f)
|
IField |
resolveField(IClass klass,
FieldReference f)
|
IMethod |
resolveMethod(IClass receiverClass,
Selector selector)
Return the unique receiver of an invocation of method on an object of type declaringClass |
IMethod |
resolveMethod(MethodReference m)
Return the unique receiver of an invocation of method on an object of type m.getDeclaredClass |
| Methods inherited from interface java.lang.Iterable |
|---|
iterator |
| Method Detail |
|---|
ClassLoaderFactory getFactory()
AnalysisScope getScope()
IClassLoader[] getLoaders()
IClassLoader getLoader(ClassLoaderReference loaderRef)
boolean addClass(IClass klass)
java.lang.IllegalArgumentException - if klass is nullint getNumberOfClasses()
boolean isRootClass(IClass c)
IClass getRootClass()
int getNumber(IClass c)
java.util.Collection<IMethod> getPossibleTargets(MethodReference ref)
ref - method reference
java.lang.IllegalArgumentException - if ref is null
java.util.Set<IMethod> getPossibleTargets(IClass receiverClass,
MethodReference ref)
receiverClass - the class of the receiverref - method reference
IMethod resolveMethod(MethodReference m)
java.lang.IllegalArgumentException - if m is nullIField resolveField(FieldReference f)
java.lang.IllegalArgumentException - if f is null
IField resolveField(IClass klass,
FieldReference f)
java.lang.IllegalArgumentException - if f is null
java.lang.IllegalArgumentException - if klass is null
IMethod resolveMethod(IClass receiverClass,
Selector selector)
receiverClass - type of receiverselector - method signature
java.lang.IllegalArgumentException - if receiverClass is nullIClass lookupClass(TypeReference A)
java.lang.IllegalArgumentException - if A is nullboolean isInterface(TypeReference type)
IClass getLeastCommonSuperclass(IClass A,
IClass B)
TypeReference getLeastCommonSuperclass(TypeReference A,
TypeReference B)
boolean isSubclassOf(IClass c,
IClass T)
java.lang.IllegalArgumentException - if c is null
boolean implementsInterface(IClass c,
IClass i)
java.util.Collection<IClass> computeSubClasses(TypeReference type)
java.util.Collection<TypeReference> getJavaLangErrorTypes()
java.util.Collection<TypeReference> getJavaLangRuntimeExceptionTypes()
RuntimeException
kind of ugly. a better scheme?
java.util.Set<IClass> getImplementors(TypeReference type)
type - an interface
int getNumberOfImmediateSubclasses(IClass klass)
java.util.Collection<IClass> getImmediateSubclasses(IClass klass)
boolean isAssignableFrom(IClass c1,
IClass c2)
java.lang.IllegalArgumentException - if c1 is null
java.lang.IllegalArgumentException - if c2 is null
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||