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, visitParsedClass
visitAnnotation, 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, visitUnknown
public ClassFileAnalyzer(IClassSpace aClassSpace)
public void visitJavaClass(org.apache.bcel.classfile.JavaClass javaClass)
visitJavaClass
in interface org.apache.bcel.classfile.Visitor
visitJavaClass
in class org.apache.bcel.classfile.EmptyVisitor
public void visitConstantClass(org.apache.bcel.classfile.ConstantClass classRef)
visitConstantClass
in interface org.apache.bcel.classfile.Visitor
visitConstantClass
in class org.apache.bcel.classfile.EmptyVisitor
public void visitField(org.apache.bcel.classfile.Field field)
visitField
in interface org.apache.bcel.classfile.Visitor
visitField
in class org.apache.bcel.classfile.EmptyVisitor
public void visitConstantNameAndType(org.apache.bcel.classfile.ConstantNameAndType nameAndType)
visitConstantNameAndType
in interface org.apache.bcel.classfile.Visitor
visitConstantNameAndType
in class org.apache.bcel.classfile.EmptyVisitor
public void visitLocalVariable(org.apache.bcel.classfile.LocalVariable localVar)
visitLocalVariable
in interface org.apache.bcel.classfile.Visitor
visitLocalVariable
in class org.apache.bcel.classfile.EmptyVisitor
public void visitLocalVariableTable(org.apache.bcel.classfile.LocalVariableTable localVarsTable)
visitLocalVariableTable
in interface org.apache.bcel.classfile.Visitor
visitLocalVariableTable
in class org.apache.bcel.classfile.EmptyVisitor
public void visitAnnotationEntry(org.apache.bcel.classfile.AnnotationEntry annotation)
visitAnnotationEntry
in interface org.apache.bcel.classfile.Visitor
visitAnnotationEntry
in class org.apache.bcel.classfile.EmptyVisitor
public void visitAnnotationDefault(org.apache.bcel.classfile.AnnotationDefault annotationDefault)
visitAnnotationDefault
in interface org.apache.bcel.classfile.Visitor
visitAnnotationDefault
in class org.apache.bcel.classfile.EmptyVisitor
public void visitParameterAnnotationEntry(org.apache.bcel.classfile.ParameterAnnotationEntry paramAnnotationEntry)
visitParameterAnnotationEntry
in interface org.apache.bcel.classfile.Visitor
visitParameterAnnotationEntry
in class org.apache.bcel.classfile.EmptyVisitor
public void visitMethod(org.apache.bcel.classfile.Method method)
visitMethod
in interface org.apache.bcel.classfile.Visitor
visitMethod
in class org.apache.bcel.classfile.EmptyVisitor
public void visitLocalVariableTypeTable(org.apache.bcel.classfile.LocalVariableTypeTable varTypeTable)
visitLocalVariableTypeTable
in interface org.apache.bcel.classfile.Visitor
visitLocalVariableTypeTable
in class org.apache.bcel.classfile.EmptyVisitor
public void visitSignature(org.apache.bcel.classfile.Signature signature)
visitSignature
in interface org.apache.bcel.classfile.Visitor
visitSignature
in class org.apache.bcel.classfile.EmptyVisitor
public java.lang.String toString()
toString
in class java.lang.Object
protected void doAnalyze(ClassInformation classInfo)
doAnalyze
in class AClassFileAnalyzer
protected 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 AClassFileAnalyzer
protected 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)