java.lang.Object
org.glavo.classfile.impl.ClassHierarchyImpl
Class hierarchy resolution framework is answering questions about classes assignability, common classes ancestor and whether the class represents an interface.
All the requests are handled without class loading nor full verification, optionally with incomplete dependencies and with focus on maximum performance.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classstatic final recordstatic final classstatic final classstatic final class -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionClassHierarchyImpl(ClassHierarchyResolver classHierarchyResolver) Public constructor ofClassHierarchyImplaccepting instances ofClassHierarchyInfoResolverto resolve individual class streams. -
Method Summary
Modifier and TypeMethodDescriptioncommonAncestor(ClassDesc symbol1, ClassDesc symbol2) Method resolving common ancestor of two classesbooleanisAssignableFrom(ClassDesc thisClass, ClassDesc fromClass) booleanisInterface(ClassDesc classDesc) Method answering question whether given class is an interface, responding without the class stream resolution and parsing is preferred in case the interface status is known from previous activities.
-
Field Details
-
DEFAULT_RESOLVER
-
-
Constructor Details
-
ClassHierarchyImpl
Public constructor ofClassHierarchyImplaccepting instances ofClassHierarchyInfoResolverto resolve individual class streams.- Parameters:
classHierarchyResolver-ClassHierarchyInfoResolverinstance
-
-
Method Details
-
isInterface
Method answering question whether given class is an interface, responding without the class stream resolution and parsing is preferred in case the interface status is known from previous activities.- Parameters:
classDesc- class path in form of <package>/<class_name>.class- Returns:
- true if the given class name represents an interface
-
commonAncestor
Method resolving common ancestor of two classes- Parameters:
symbol1- first class descriptorsymbol2- second class descriptor- Returns:
- common ancestor class name or
nullif it could not be identified
-
isAssignableFrom
-