Package proguard.evaluation.value
Class Value
java.lang.Object
proguard.evaluation.value.Value
- Direct Known Subclasses:
Category1Value,Category2Value,TracingValue,UnknownValue
This abstract class represents a partially evaluated value.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final int -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionReturns this Value as a Category1Value.Returns this Value as a Category2Value.abstract intReturns the computational type of this Value.Returns a deep copy of the value if it mutable, returns the value itself otherwise.Returns this Value as a DoubleValue.Returns this Value as a FloatValue.abstract Valuegeneralize(Value other) Returns the generalization of this Value and the given other Value.Returns this Value as an InstructionOffsetValue.Returns this Value as an IntegerValue.abstract StringReturns the internal type of this Value.abstract booleanReturns whether the computational type of this Value is a category 2 type.booleanReturns whether this Value represents a single particular (known) value.booleanReturns whether this Value represents a single specific (but possibly unknown) value.Returns this Value as a LongValue.Returns this Value as a ReferenceValue.
-
Field Details
-
NEVER
public static final int NEVER- See Also:
-
MAYBE
public static final int MAYBE- See Also:
-
ALWAYS
public static final int ALWAYS- See Also:
-
TYPE_UNKNOWN
public static final int TYPE_UNKNOWN- See Also:
-
TYPE_INTEGER
public static final int TYPE_INTEGER- See Also:
-
TYPE_LONG
public static final int TYPE_LONG- See Also:
-
TYPE_FLOAT
public static final int TYPE_FLOAT- See Also:
-
TYPE_DOUBLE
public static final int TYPE_DOUBLE- See Also:
-
TYPE_REFERENCE
public static final int TYPE_REFERENCE- See Also:
-
TYPE_INSTRUCTION_OFFSET
public static final int TYPE_INSTRUCTION_OFFSET- See Also:
-
TYPE_TOP
public static final int TYPE_TOP- See Also:
-
-
Constructor Details
-
Value
public Value()
-
-
Method Details
-
category1Value
Returns this Value as a Category1Value. -
category2Value
Returns this Value as a Category2Value. -
integerValue
Returns this Value as an IntegerValue. -
longValue
Returns this Value as a LongValue. -
floatValue
Returns this Value as a FloatValue. -
doubleValue
Returns this Value as a DoubleValue. -
referenceValue
Returns this Value as a ReferenceValue. -
instructionOffsetValue
Returns this Value as an InstructionOffsetValue. -
isSpecific
public boolean isSpecific()Returns whether this Value represents a single specific (but possibly unknown) value. -
isParticular
public boolean isParticular()Returns whether this Value represents a single particular (known) value. -
generalize
Returns the generalization of this Value and the given other Value. -
isCategory2
public abstract boolean isCategory2()Returns whether the computational type of this Value is a category 2 type. This means that it takes up the space of two category 1 types on the stack, for instance. -
computationalType
public abstract int computationalType()Returns the computational type of this Value.- Returns:
TYPE_INTEGER,TYPE_LONG,TYPE_FLOAT,TYPE_DOUBLE,TYPE_REFERENCE, orTYPE_INSTRUCTION_OFFSET.
-
internalType
Returns the internal type of this Value.- Returns:
TypeConstants.BOOLEAN,TypeConstants.BYTE,TypeConstants.CHAR,TypeConstants.SHORT,TypeConstants.INT,TypeConstants.LONG,TypeConstants.FLOAT,TypeConstants.DOUBLE,TypeConstants.CLASS_START ... TypeConstants.CLASS_END, or an array type containing any of these types (always as String).
-
copyIfMutable
Returns a deep copy of the value if it mutable, returns the value itself otherwise.
-