Package proguard.evaluation.value
Class TracingValue
- java.lang.Object
-
- proguard.evaluation.value.Value
-
- proguard.evaluation.value.TracingValue
-
public class TracingValue extends Value
Representation of a value that has been tagged with a sticky trace value.
-
-
Field Summary
-
Fields inherited from class proguard.evaluation.value.Value
ALWAYS, MAYBE, NEVER, TYPE_DOUBLE, TYPE_FLOAT, TYPE_INSTRUCTION_OFFSET, TYPE_INTEGER, TYPE_LONG, TYPE_REFERENCE, TYPE_TOP, TYPE_UNKNOWN
-
-
Constructor Summary
Constructors Constructor Description TracingValue(Value traceValue, Value value)
Creates a new TracingValue with the given trace value and value.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Category1Value
category1Value()
Returns this Value as a Category1Value.Category2Value
category2Value()
Returns this Value as a Category2Value.int
computationalType()
Returns the computational type of this Value.DoubleValue
doubleValue()
Returns this Value as a DoubleValue.boolean
equals(java.lang.Object object)
FloatValue
floatValue()
Returns this Value as a FloatValue.TracingValue
generalize(TracingValue other)
Returns the generalization of this TracingValue and the given other TracingValue.Value
generalize(Value other)
Returns the generalization of this Value and the given other Value.int
hashCode()
InstructionOffsetValue
instructionOffsetValue()
Returns this Value as an InstructionOffsetValue.IntegerValue
integerValue()
Returns this Value as an IntegerValue.java.lang.String
internalType()
Returns the internal type of this Value.boolean
isCategory2()
Returns whether the computational type of this Value is a category 2 type.boolean
isParticular()
Returns whether this Value represents a single particular (known) value.boolean
isSpecific()
Returns whether this Value represents a single specific (but possibly unknown) value.LongValue
longValue()
Returns this Value as a LongValue.ReferenceValue
referenceValue()
Returns this Value as a ReferenceValue.java.lang.String
toString()
-
Methods inherited from class proguard.evaluation.value.Value
copyIfMutable
-
-
-
-
Method Detail
-
generalize
public final TracingValue generalize(TracingValue other)
Returns the generalization of this TracingValue and the given other TracingValue.
-
category1Value
public Category1Value category1Value()
Description copied from class:Value
Returns this Value as a Category1Value.- Overrides:
category1Value
in classValue
-
category2Value
public Category2Value category2Value()
Description copied from class:Value
Returns this Value as a Category2Value.- Overrides:
category2Value
in classValue
-
integerValue
public IntegerValue integerValue()
Description copied from class:Value
Returns this Value as an IntegerValue.- Overrides:
integerValue
in classValue
-
longValue
public LongValue longValue()
Description copied from class:Value
Returns this Value as a LongValue.
-
floatValue
public FloatValue floatValue()
Description copied from class:Value
Returns this Value as a FloatValue.- Overrides:
floatValue
in classValue
-
doubleValue
public DoubleValue doubleValue()
Description copied from class:Value
Returns this Value as a DoubleValue.- Overrides:
doubleValue
in classValue
-
referenceValue
public ReferenceValue referenceValue()
Description copied from class:Value
Returns this Value as a ReferenceValue.- Overrides:
referenceValue
in classValue
-
instructionOffsetValue
public final InstructionOffsetValue instructionOffsetValue()
Description copied from class:Value
Returns this Value as an InstructionOffsetValue.- Overrides:
instructionOffsetValue
in classValue
-
isSpecific
public boolean isSpecific()
Description copied from class:Value
Returns whether this Value represents a single specific (but possibly unknown) value.- Overrides:
isSpecific
in classValue
-
isParticular
public boolean isParticular()
Description copied from class:Value
Returns whether this Value represents a single particular (known) value.- Overrides:
isParticular
in classValue
-
generalize
public final Value generalize(Value other)
Description copied from class:Value
Returns the generalization of this Value and the given other Value.- Specified by:
generalize
in classValue
-
isCategory2
public boolean isCategory2()
Description copied from class:Value
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.- Specified by:
isCategory2
in classValue
-
computationalType
public final int computationalType()
Description copied from class:Value
Returns the computational type of this Value.- Specified by:
computationalType
in classValue
- Returns:
TYPE_INTEGER
,TYPE_LONG
,TYPE_FLOAT
,TYPE_DOUBLE
,TYPE_REFERENCE
, orTYPE_INSTRUCTION_OFFSET
.
-
internalType
public final java.lang.String internalType()
Description copied from class:Value
Returns the internal type of this Value.- Specified by:
internalType
in classValue
- 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).
-
equals
public boolean equals(java.lang.Object object)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-