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(ClassInformation classInfo)
Analyze the given class.
|
protected void |
analyzeCodeOfMethod(org.apache.bcel.classfile.Method method) |
protected void |
calculateHashIfNecessary(ClassInformation classInfo,
byte[] fileContents)
If the hash value calculation is enabled this method calculates the hash of the
given content bytes and sets it into the specified classInfo.
|
protected abstract void |
doAnalyze(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 FileUtil |
futil() |
protected 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) |
boolean |
isCalculatingHashesEnabled() |
protected int[] |
makeNamedTypeID(int nameIndex,
int typeIndex) |
protected void |
notifyAboutMethodInvocation(MethodInvocationInformation invocationInfo) |
protected java.util.Optional<org.apache.bcel.classfile.JavaClass> |
parse(ClassInformation classInfo) |
void |
registerListeners(IMethodInvocationListener... listeners)
Registers one or more listeners that will be notified about detected
method invocations.
|
void |
setCalculatingHashesEnabled(boolean calculatingHashesEnabled) |
protected void |
setClassToAnalyze(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(ClassInformation classInfo)
public void addCodeAnalyzers(IMethodCodeAnalyzer... codeAnalyzers)
public void registerListeners(IMethodInvocationListener... listeners)
public boolean isCalculatingHashesEnabled()
public void setCalculatingHashesEnabled(boolean calculatingHashesEnabled)
protected abstract void doAnalyze(ClassInformation classInfo)
protected java.util.Optional<org.apache.bcel.classfile.JavaClass> parse(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 void calculateHashIfNecessary(ClassInformation classInfo, byte[] fileContents)
protected int[] makeNamedTypeID(int nameIndex, int typeIndex)
protected ClassInformation getClassToAnalyze()
protected void setClassToAnalyze(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 FileUtil futil()
protected org.pfsw.logging.Logger2 getLogger()