edu.umd.cs.findbugs.classfile.engine.bcel
Class LoadedFieldSetFactory
java.lang.Object
edu.umd.cs.findbugs.classfile.engine.bcel.AnalysisFactory<LoadedFieldSet>
edu.umd.cs.findbugs.classfile.engine.bcel.LoadedFieldSetFactory
- All Implemented Interfaces:
- IAnalysisEngine<MethodDescriptor,LoadedFieldSet>, IMethodAnalysisEngine<LoadedFieldSet>
public class LoadedFieldSetFactory
- extends AnalysisFactory<LoadedFieldSet>
Factory to determine which fields are loaded and stored
by the instructions in a method, and the overall method.
The main purpose is to support efficient redundant load elimination
and forward substitution in ValueNumberAnalysis (there is no need to
remember stores of fields that are never read,
or loads of fields that are only loaded in one location).
However, it might be useful for other kinds of analysis.
The tricky part is that in addition to fields loaded and stored
with get/putfield and get/putstatic, we also try to figure
out field accessed through calls to inner-class access methods.
Methods inherited from class edu.umd.cs.findbugs.classfile.engine.bcel.AnalysisFactory |
getAssertionMethods, getCFG, getCompactLocationNumbering, getConstantPoolGen, getDepthFirstSearch, getExceptionSetFactory, getIsNullValueDataflow, getJavaClass, getLoadedFieldSet, getMethod, getMethodGen, getReverseDepthFirstSearch, getTypeDataflow, getValueNumberDataflow, registerWith, toString |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
LoadedFieldSetFactory
public LoadedFieldSetFactory()
- Constructor.
analyze
public LoadedFieldSet analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor)
throws CheckedAnalysisException
- Description copied from interface:
IAnalysisEngine
- Perform an analysis on class or method named by given descriptor.
- Parameters:
analysisCache
- the analysis cachedescriptor
- the descriptor of the class or method to be analyzed
- Returns:
- the result of the analysis of the class or method
- Throws:
CheckedAnalysisException
FindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.