Package edu.umd.cs.findbugs.ba.type
Class TypeFrame
- java.lang.Object
-
- edu.umd.cs.findbugs.ba.Frame<org.apache.bcel.generic.Type>
-
- edu.umd.cs.findbugs.ba.type.TypeFrame
-
public class TypeFrame extends Frame<org.apache.bcel.generic.Type>
A specialization ofFramefor determining the types of values in the Java stack frame (locals and operand stack).- Author:
- David Hovemeyer
- See Also:
Frame,TypeAnalysis
-
-
Constructor Summary
Constructors Constructor Description TypeFrame(int numLocals)Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclearExactSet()Clear the exact type set.voidcopyFrom(Frame<org.apache.bcel.generic.Type> other_)Make this Frame exactly the same as the one given as a parameter.static org.apache.bcel.generic.TypegetBottomType()Get the single instance of the "Bottom" type.static org.apache.bcel.generic.TypegetDoubleExtraType()Get the single instance of the "DoubleExtra" type.static org.apache.bcel.generic.TypegetLongExtraType()Get the single instance of the "LongExtra" type.static org.apache.bcel.generic.TypegetNullType()Get the single instance of the "Null" type.static org.apache.bcel.generic.TypegetTopType()Get the single instance of the "Top" type.booleanisExact(int slot)Get whether or not a type in a given slot is exact.org.apache.bcel.generic.TypepopValue()Pop a value off of the Java operand stack.voidpushValue(org.apache.bcel.generic.Type value)Push a value onto the Java operand stack.voidsetExact(int slot, boolean isExact)Set whether or not a type in a given slot is exact.voidsetTop()Make this frame the special "TOP" value.java.lang.StringtoString()Convert to string.protected java.lang.StringvalueToString(org.apache.bcel.generic.Type value)Subclasses may override this if they want to do something special to convert Value objects to Strings.-
Methods inherited from class edu.umd.cs.findbugs.ba.Frame
allSlots, clearStack, contains, getArgument, getArgument, getArgumentSet, getArgumentSlot, getInstance, getInstanceSlot, getInstanceStackLocation, getLastUpdateTimestamp, getNumArguments, getNumArgumentsIncludingObjectInstance, getNumLocals, getNumSlots, getOperand, getStackDepth, getStackLocation, getStackValue, getTopStackWords, getTopValue, getValue, isBottom, isTop, isValid, sameAs, setBottom, setLastUpdateTimestamp, setValid, setValue
-
-
-
-
Method Detail
-
setExact
public void setExact(int slot, boolean isExact)Set whether or not a type in a given slot is exact.- Parameters:
slot- the slotisExact- true if the slot contains an exact type, false if just an upper bound
-
isExact
public boolean isExact(int slot)
Get whether or not a type in a given slot is exact.- Parameters:
slot- the slot- Returns:
- true if the slot contains an exact type, false if just an upper bound
-
clearExactSet
public void clearExactSet()
Clear the exact type set. The result is that all slots will be assumed not to contain an exact type.
-
setTop
public void setTop()
Description copied from class:FrameMake this frame the special "TOP" value. Such Frames are the identity element of the meet operation.
-
copyFrom
public void copyFrom(Frame<org.apache.bcel.generic.Type> other_)
Description copied from class:FrameMake this Frame exactly the same as the one given as a parameter.
-
valueToString
protected java.lang.String valueToString(org.apache.bcel.generic.Type value)
Description copied from class:FrameSubclasses may override this if they want to do something special to convert Value objects to Strings. By default, we just call toString() on the values.- Overrides:
valueToStringin classFrame<org.apache.bcel.generic.Type>
-
getTopType
public static org.apache.bcel.generic.Type getTopType()
Get the single instance of the "Top" type.
-
getBottomType
public static org.apache.bcel.generic.Type getBottomType()
Get the single instance of the "Bottom" type.
-
getLongExtraType
public static org.apache.bcel.generic.Type getLongExtraType()
Get the single instance of the "LongExtra" type.
-
getDoubleExtraType
public static org.apache.bcel.generic.Type getDoubleExtraType()
Get the single instance of the "DoubleExtra" type.
-
getNullType
public static org.apache.bcel.generic.Type getNullType()
Get the single instance of the "Null" type.
-
pushValue
public void pushValue(org.apache.bcel.generic.Type value)
Description copied from class:FramePush a value onto the Java operand stack.
-
popValue
public org.apache.bcel.generic.Type popValue() throws DataflowAnalysisExceptionPop a value off of the Java operand stack.- Overrides:
popValuein classFrame<org.apache.bcel.generic.Type>- Returns:
- the value that was popped
- Throws:
DataflowAnalysisException- if the Java operand stack is empty
-
-