public class ClassFileAnalyzer extends AClassFileAnalyzer
class is not thread-safe!
| Constructor and Description |
|---|
ClassFileAnalyzer(IClassSpace aClassSpace)
Initialize the new instance with a class space.
|
| Modifier and Type | Method and Description |
|---|---|
protected ClassInformation |
addDependency(java.lang.String className,
org.pfsw.odem.DependencyClassification classification) |
protected void |
addDependencyFromSignature(java.lang.String signature,
org.pfsw.odem.DependencyClassification classification)
Scans over the given string and adds all fully qualified class names.
|
protected ClassInformation |
addInterfaceName(java.lang.String className,
org.pfsw.odem.DependencyClassification classification) |
protected ClassInformation |
addSuperClassName(java.lang.String className) |
protected void |
doAnalyze(ClassInformation classInfo)
Analyze the given class in the context of the analyzer's current workset.
|
protected GenericClassContainer |
findContainerFor(ClassInformation classInfo) |
protected IClassSpace |
getClassSpace() |
protected GenericClassContainer |
getCurrentContainer()
Returns the container of the class that currently gets analyzed.
|
protected java.util.List<int[]> |
getIdRegistry() |
protected SignatureExaminer |
getSignatureExaminer() |
protected void |
handleElementValue(org.apache.bcel.classfile.ElementValue elementValue) |
boolean |
isAnnotationType(org.apache.bcel.classfile.JavaClass javaClass)
Returns true if definitely represents an annotation type
|
boolean |
isClassType(org.apache.bcel.classfile.JavaClass javaClass)
Returns true if definitely represents a class type
|
boolean |
isEnumType(org.apache.bcel.classfile.JavaClass javaClass)
Returns true if definitely represents an enum type
|
boolean |
isInterfaceType(org.apache.bcel.classfile.JavaClass javaClass)
Returns true if definitely represents an interface type
|
protected void |
notifyAboutMethodInvocation(MethodInvocationInformation invocationInfo) |
protected void |
prepareAndAddClassName(java.lang.String className)
Checks if the given className is an array signature and handles it appropriately.
|
protected void |
registerDefaultCodeAnalyzers() |
protected boolean |
registerID(int nameIndex,
int typeIndex)
Checks if the ID for the given two values is already registered.
|
protected void |
setClassSpace(IClassSpace newValue) |
protected void |
setIdRegistry(java.util.List<int[]> idRegistry) |
java.lang.String |
toString() |
void |
visitAnnotationDefault(org.apache.bcel.classfile.AnnotationDefault annotationDefault) |
void |
visitAnnotationEntry(org.apache.bcel.classfile.AnnotationEntry annotation) |
void |
visitConstantClass(org.apache.bcel.classfile.ConstantClass classRef) |
void |
visitConstantNameAndType(org.apache.bcel.classfile.ConstantNameAndType nameAndType) |
void |
visitField(org.apache.bcel.classfile.Field field) |
void |
visitJavaClass(org.apache.bcel.classfile.JavaClass javaClass) |
void |
visitLocalVariable(org.apache.bcel.classfile.LocalVariable localVar) |
void |
visitLocalVariableTable(org.apache.bcel.classfile.LocalVariableTable localVarsTable) |
void |
visitLocalVariableTypeTable(org.apache.bcel.classfile.LocalVariableTypeTable varTypeTable) |
void |
visitMethod(org.apache.bcel.classfile.Method method) |
void |
visitParameterAnnotationEntry(org.apache.bcel.classfile.ParameterAnnotationEntry paramAnnotationEntry) |
void |
visitSignature(org.apache.bcel.classfile.Signature signature) |
addCodeAnalyzers, analyze, analyzeCodeOfMethod, calculateHashIfNecessary, findClassForNameIndex, futil, getClassToAnalyze, getConstantPool, getCurrentClass, getLogger, getMethodCodeAnalyzers, getMethodInvocationListener, initCodeAnalyzers, isCalculatingHashesEnabled, makeNamedTypeID, parse, registerListeners, setCalculatingHashesEnabled, setClassToAnalyze, setCurrentClass, visitParsedClassvisitAnnotation, visitBootstrapMethods, visitCode, visitCodeException, visitConstantDouble, visitConstantDynamic, visitConstantFieldref, visitConstantFloat, visitConstantInteger, visitConstantInterfaceMethodref, visitConstantInvokeDynamic, visitConstantLong, visitConstantMethodHandle, visitConstantMethodref, visitConstantMethodType, visitConstantModule, visitConstantPackage, visitConstantPool, visitConstantString, visitConstantUtf8, visitConstantValue, visitDeprecated, visitEnclosingMethod, visitExceptionTable, visitInnerClass, visitInnerClasses, visitLineNumber, visitLineNumberTable, visitMethodParameter, visitMethodParameters, visitModule, visitModuleExports, visitModuleMainClass, visitModuleOpens, visitModulePackages, visitModuleProvides, visitModuleRequires, visitNestHost, visitNestMembers, visitParameterAnnotation, visitSourceFile, visitStackMap, visitStackMapEntry, visitSynthetic, visitUnknownpublic ClassFileAnalyzer(IClassSpace aClassSpace)
public void visitJavaClass(org.apache.bcel.classfile.JavaClass javaClass)
visitJavaClass in interface org.apache.bcel.classfile.VisitorvisitJavaClass in class org.apache.bcel.classfile.EmptyVisitorpublic void visitConstantClass(org.apache.bcel.classfile.ConstantClass classRef)
visitConstantClass in interface org.apache.bcel.classfile.VisitorvisitConstantClass in class org.apache.bcel.classfile.EmptyVisitorpublic void visitField(org.apache.bcel.classfile.Field field)
visitField in interface org.apache.bcel.classfile.VisitorvisitField in class org.apache.bcel.classfile.EmptyVisitorpublic void visitConstantNameAndType(org.apache.bcel.classfile.ConstantNameAndType nameAndType)
visitConstantNameAndType in interface org.apache.bcel.classfile.VisitorvisitConstantNameAndType in class org.apache.bcel.classfile.EmptyVisitorpublic void visitLocalVariable(org.apache.bcel.classfile.LocalVariable localVar)
visitLocalVariable in interface org.apache.bcel.classfile.VisitorvisitLocalVariable in class org.apache.bcel.classfile.EmptyVisitorpublic void visitLocalVariableTable(org.apache.bcel.classfile.LocalVariableTable localVarsTable)
visitLocalVariableTable in interface org.apache.bcel.classfile.VisitorvisitLocalVariableTable in class org.apache.bcel.classfile.EmptyVisitorpublic void visitAnnotationEntry(org.apache.bcel.classfile.AnnotationEntry annotation)
visitAnnotationEntry in interface org.apache.bcel.classfile.VisitorvisitAnnotationEntry in class org.apache.bcel.classfile.EmptyVisitorpublic void visitAnnotationDefault(org.apache.bcel.classfile.AnnotationDefault annotationDefault)
visitAnnotationDefault in interface org.apache.bcel.classfile.VisitorvisitAnnotationDefault in class org.apache.bcel.classfile.EmptyVisitorpublic void visitParameterAnnotationEntry(org.apache.bcel.classfile.ParameterAnnotationEntry paramAnnotationEntry)
visitParameterAnnotationEntry in interface org.apache.bcel.classfile.VisitorvisitParameterAnnotationEntry in class org.apache.bcel.classfile.EmptyVisitorpublic void visitMethod(org.apache.bcel.classfile.Method method)
visitMethod in interface org.apache.bcel.classfile.VisitorvisitMethod in class org.apache.bcel.classfile.EmptyVisitorpublic void visitLocalVariableTypeTable(org.apache.bcel.classfile.LocalVariableTypeTable varTypeTable)
visitLocalVariableTypeTable in interface org.apache.bcel.classfile.VisitorvisitLocalVariableTypeTable in class org.apache.bcel.classfile.EmptyVisitorpublic void visitSignature(org.apache.bcel.classfile.Signature signature)
visitSignature in interface org.apache.bcel.classfile.VisitorvisitSignature in class org.apache.bcel.classfile.EmptyVisitorpublic java.lang.String toString()
toString in class java.lang.Objectprotected void doAnalyze(ClassInformation classInfo)
doAnalyze in class AClassFileAnalyzerprotected void handleElementValue(org.apache.bcel.classfile.ElementValue elementValue)
public final boolean isClassType(org.apache.bcel.classfile.JavaClass javaClass)
public final boolean isInterfaceType(org.apache.bcel.classfile.JavaClass javaClass)
public final boolean isAnnotationType(org.apache.bcel.classfile.JavaClass javaClass)
public final boolean isEnumType(org.apache.bcel.classfile.JavaClass javaClass)
protected void prepareAndAddClassName(java.lang.String className)
protected void addDependencyFromSignature(java.lang.String signature,
org.pfsw.odem.DependencyClassification classification)
protected ClassInformation addSuperClassName(java.lang.String className)
protected ClassInformation addInterfaceName(java.lang.String className, org.pfsw.odem.DependencyClassification classification)
protected ClassInformation addDependency(java.lang.String className, org.pfsw.odem.DependencyClassification classification)
protected GenericClassContainer findContainerFor(ClassInformation classInfo)
protected GenericClassContainer getCurrentContainer()
protected boolean registerID(int nameIndex,
int typeIndex)
protected void notifyAboutMethodInvocation(MethodInvocationInformation invocationInfo)
notifyAboutMethodInvocation in class AClassFileAnalyzerprotected void registerDefaultCodeAnalyzers()
protected SignatureExaminer getSignatureExaminer()
protected IClassSpace getClassSpace()
protected void setClassSpace(IClassSpace newValue)
protected java.util.List<int[]> getIdRegistry()
protected void setIdRegistry(java.util.List<int[]> idRegistry)