public abstract class AClassFileAnalyzer
extends org.apache.bcel.classfile.EmptyVisitor
Constructor and Description |
---|
AClassFileAnalyzer() |
Modifier and Type | Method and Description |
---|---|
void |
addCodeAnalyzers(IMethodCodeAnalyzer... codeAnalyzers)
Registers one or more code analyzers that will analyze by code
to detect specific method invocations.
|
void |
analyze(org.pfsw.tools.cda.base.model.ClassInformation classInfo)
Analyze the given class.
|
protected void |
analyzeCodeOfMethod(org.apache.bcel.classfile.Method method) |
protected abstract void |
doAnalyze(org.pfsw.tools.cda.base.model.ClassInformation classInfo)
Do the actual analyzing specific to the analyzer's purpose.
|
protected int |
findClassForNameIndex(org.apache.bcel.classfile.ConstantPool pool)
Returns the index in the constant pool of method Class.forName(String)
or -1 if not found.
|
protected org.pfsw.tools.cda.base.util.FileUtil |
futil() |
protected org.pfsw.tools.cda.base.model.ClassInformation |
getClassToAnalyze() |
protected org.apache.bcel.classfile.ConstantPool |
getConstantPool() |
protected org.apache.bcel.classfile.JavaClass |
getCurrentClass() |
protected org.pfsw.logging.Logger2 |
getLogger() |
protected java.util.List<IMethodCodeAnalyzer> |
getMethodCodeAnalyzers() |
protected java.util.List<IMethodInvocationListener> |
getMethodInvocationListener() |
protected void |
initCodeAnalyzers(org.apache.bcel.classfile.JavaClass javaClass) |
protected int[] |
makeNamedTypeID(int nameIndex,
int typeIndex) |
protected void |
notifyAboutMethodInvocation(MethodInvocationInformation invocationInfo) |
protected java.util.Optional<org.apache.bcel.classfile.JavaClass> |
parse(org.pfsw.tools.cda.base.model.ClassInformation classInfo) |
void |
registerListeners(IMethodInvocationListener... listeners)
Registers one or more listeners that will be notified about detected
method invocations.
|
protected void |
setClassToAnalyze(org.pfsw.tools.cda.base.model.ClassInformation newValue) |
protected void |
setCurrentClass(org.apache.bcel.classfile.JavaClass newValue) |
protected void |
visitParsedClass(org.apache.bcel.classfile.JavaClass javaClass) |
visitAnnotation, visitAnnotationDefault, visitAnnotationEntry, visitBootstrapMethods, visitCode, visitCodeException, visitConstantClass, visitConstantDouble, visitConstantDynamic, visitConstantFieldref, visitConstantFloat, visitConstantInteger, visitConstantInterfaceMethodref, visitConstantInvokeDynamic, visitConstantLong, visitConstantMethodHandle, visitConstantMethodref, visitConstantMethodType, visitConstantModule, visitConstantNameAndType, visitConstantPackage, visitConstantPool, visitConstantString, visitConstantUtf8, visitConstantValue, visitDeprecated, visitEnclosingMethod, visitExceptionTable, visitField, visitInnerClass, visitInnerClasses, visitJavaClass, visitLineNumber, visitLineNumberTable, visitLocalVariable, visitLocalVariableTable, visitLocalVariableTypeTable, visitMethod, visitMethodParameter, visitMethodParameters, visitModule, visitModuleExports, visitModuleMainClass, visitModuleOpens, visitModulePackages, visitModuleProvides, visitModuleRequires, visitNestHost, visitNestMembers, visitParameterAnnotation, visitParameterAnnotationEntry, visitSignature, visitSourceFile, visitStackMap, visitStackMapEntry, visitSynthetic, visitUnknown
public void analyze(org.pfsw.tools.cda.base.model.ClassInformation classInfo)
public void addCodeAnalyzers(IMethodCodeAnalyzer... codeAnalyzers)
public void registerListeners(IMethodInvocationListener... listeners)
protected abstract void doAnalyze(org.pfsw.tools.cda.base.model.ClassInformation classInfo)
protected java.util.Optional<org.apache.bcel.classfile.JavaClass> parse(org.pfsw.tools.cda.base.model.ClassInformation classInfo)
protected void visitParsedClass(org.apache.bcel.classfile.JavaClass javaClass)
protected void initCodeAnalyzers(org.apache.bcel.classfile.JavaClass javaClass)
protected void analyzeCodeOfMethod(org.apache.bcel.classfile.Method method)
protected void notifyAboutMethodInvocation(MethodInvocationInformation invocationInfo)
protected int findClassForNameIndex(org.apache.bcel.classfile.ConstantPool pool)
protected int[] makeNamedTypeID(int nameIndex, int typeIndex)
protected org.pfsw.tools.cda.base.model.ClassInformation getClassToAnalyze()
protected void setClassToAnalyze(org.pfsw.tools.cda.base.model.ClassInformation newValue)
protected org.apache.bcel.classfile.JavaClass getCurrentClass()
protected void setCurrentClass(org.apache.bcel.classfile.JavaClass newValue)
protected java.util.List<IMethodCodeAnalyzer> getMethodCodeAnalyzers()
protected java.util.List<IMethodInvocationListener> getMethodInvocationListener()
protected org.apache.bcel.classfile.ConstantPool getConstantPool()
protected org.pfsw.tools.cda.base.util.FileUtil futil()
protected org.pfsw.logging.Logger2 getLogger()