public class TracedReferenceValue extends ReferenceValue
ReferenceValue
represents a reference value that is tagged with a trace value.ALWAYS, MAYBE, NEVER, TYPE_DOUBLE, TYPE_FLOAT, TYPE_INSTRUCTION_OFFSET, TYPE_INTEGER, TYPE_LONG, TYPE_REFERENCE, TYPE_TOP, TYPE_UNKNOWN
Constructor and Description |
---|
TracedReferenceValue(ReferenceValue referenceValue,
Value traceValue)
Creates a new reference value with the given ID.
|
Modifier and Type | Method and Description |
---|---|
IntegerValue |
arrayLength(ValueFactory valueFactory)
Returns the length of the array, assuming this type is an array.
|
void |
arrayStore(IntegerValue indexValue,
Value value)
Stores the given value at the given index in the given array, assuming this type is an array.
|
ReferenceValue |
cast(java.lang.String type,
Clazz referencedClass,
ValueFactory valueFactory,
boolean alwaysCast)
Returns this ReferenceValue, cast to the given type.
|
DoubleValue |
doubleArrayLoad(IntegerValue indexValue,
ValueFactory valueFactory)
Returns the value of the array at the given index, assuming this type is an double array.
|
int |
equal(ArrayReferenceValue other)
Returns whether this ReferenceValue is equal to the given other ArrayReferenceValue.
|
int |
equal(DetailedArrayReferenceValue other)
Returns whether this ReferenceValue is equal to the given other DetailedArrayReferenceValue.
|
int |
equal(IdentifiedArrayReferenceValue other)
Returns whether this ReferenceValue is equal to the given other IdentifiedArrayReferenceValue.
|
int |
equal(IdentifiedReferenceValue other)
Returns whether this ReferenceValue is equal to the given other IdentifiedReferenceValue.
|
int |
equal(ReferenceValue other)
Returns whether this ReferenceValue is equal to the given other ReferenceValue.
|
int |
equal(TracedReferenceValue other)
Returns whether this ReferenceValue is equal to the given other TracedReferenceValue.
|
int |
equal(TypedReferenceValue other)
Returns whether this ReferenceValue is equal to the given other TypedReferenceValue.
|
int |
equal(UnknownReferenceValue other)
Returns whether this ReferenceValue is equal to the given other UnknownReferenceValue.
|
boolean |
equals(java.lang.Object object) |
FloatValue |
floatArrayLoad(IntegerValue indexValue,
ValueFactory valueFactory)
Returns the value of the array at the given index, assuming this type is an float array.
|
ReferenceValue |
generalize(ArrayReferenceValue other)
Returns the generalization of this ReferenceValue and the given other ArrayReferenceValue.
|
ReferenceValue |
generalize(DetailedArrayReferenceValue other)
Returns the generalization of this ReferenceValue and the given other
DetailedArrayReferenceValue.
|
ReferenceValue |
generalize(IdentifiedArrayReferenceValue other)
Returns the generalization of this ReferenceValue and the given other
IdentifiedArrayReferenceValue.
|
ReferenceValue |
generalize(IdentifiedReferenceValue other)
Returns the generalization of this ReferenceValue and the given other IdentifiedReferenceValue.
|
ReferenceValue |
generalize(ReferenceValue other)
Returns the generalization of this ReferenceValue and the given other ReferenceValue.
|
ReferenceValue |
generalize(TracedReferenceValue other)
Returns the generalization of this ReferenceValue and the given other TracedReferenceValue.
|
ReferenceValue |
generalize(TypedReferenceValue other)
Returns the generalization of this ReferenceValue and the given other TypedReferenceValue.
|
ReferenceValue |
generalize(UnknownReferenceValue other)
Returns the generalization of this ReferenceValue and the given other UnknownReferenceValue.
|
Clazz |
getReferencedClass()
Returns the class that is referenced by the type.
|
ReferenceValue |
getReferenceValue()
Returns the reference value.
|
Value |
getTraceValue()
Returns the trace value.
|
java.lang.String |
getType()
Returns the type.
|
int |
hashCode() |
int |
instanceOf(java.lang.String otherType,
Clazz otherReferencedClass)
Returns whether the type is an instance of the given type.
|
IntegerValue |
integerArrayLoad(IntegerValue indexValue,
ValueFactory valueFactory)
Returns the value of the array at the given index, assuming this type is an integer array.
|
java.lang.String |
internalType()
Returns the internal type of this Value.
|
int |
isNull()
Returns whether this ReferenceValue is
null . |
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 |
longArrayLoad(IntegerValue indexValue,
ValueFactory valueFactory)
Returns the value of the array at the given index, assuming this type is an long array.
|
boolean |
mayBeExtension()
Returns whether the actual type of this ReferenceValue may be an extension of its type.
|
ReferenceValue |
referenceArrayLoad(IntegerValue indexValue,
ValueFactory valueFactory)
Returns the value of the array at the given index, assuming this type is a reference array.
|
java.lang.String |
toString() |
computationalType, equal, equal, generalize, generalize, generalize, getValue, isNotNull, notEqual, referenceValue, value
category1Value, isCategory2
category2Value, copyIfMutable, doubleValue, floatValue, instructionOffsetValue, integerValue, longValue
public TracedReferenceValue(ReferenceValue referenceValue, Value traceValue)
public ReferenceValue getReferenceValue()
public Value getTraceValue()
public java.lang.String getType()
ReferenceValue
getType
in class ReferenceValue
public Clazz getReferencedClass()
ReferenceValue
getReferencedClass
in class ReferenceValue
public boolean mayBeExtension()
ReferenceValue
mayBeExtension
in class ReferenceValue
public int isNull()
ReferenceValue
null
.isNull
in class ReferenceValue
NEVER
, MAYBE
, or ALWAYS
.public int instanceOf(java.lang.String otherType, Clazz otherReferencedClass)
ReferenceValue
instanceOf
in class ReferenceValue
public ReferenceValue cast(java.lang.String type, Clazz referencedClass, ValueFactory valueFactory, boolean alwaysCast)
ReferenceValue
cast
in class ReferenceValue
public IntegerValue arrayLength(ValueFactory valueFactory)
ReferenceValue
arrayLength
in class ReferenceValue
public IntegerValue integerArrayLoad(IntegerValue indexValue, ValueFactory valueFactory)
ReferenceValue
integerArrayLoad
in class ReferenceValue
public LongValue longArrayLoad(IntegerValue indexValue, ValueFactory valueFactory)
ReferenceValue
longArrayLoad
in class ReferenceValue
public FloatValue floatArrayLoad(IntegerValue indexValue, ValueFactory valueFactory)
ReferenceValue
floatArrayLoad
in class ReferenceValue
public DoubleValue doubleArrayLoad(IntegerValue indexValue, ValueFactory valueFactory)
ReferenceValue
doubleArrayLoad
in class ReferenceValue
public ReferenceValue referenceArrayLoad(IntegerValue indexValue, ValueFactory valueFactory)
ReferenceValue
referenceArrayLoad
in class ReferenceValue
public void arrayStore(IntegerValue indexValue, Value value)
ReferenceValue
arrayStore
in class ReferenceValue
public ReferenceValue generalize(ReferenceValue other)
ReferenceValue
generalize
in class ReferenceValue
public int equal(ReferenceValue other)
ReferenceValue
equal
in class ReferenceValue
NEVER
, MAYBE
, or ALWAYS
.public ReferenceValue generalize(UnknownReferenceValue other)
ReferenceValue
generalize
in class ReferenceValue
public int equal(UnknownReferenceValue other)
ReferenceValue
equal
in class ReferenceValue
NEVER
, MAYBE
, or ALWAYS
.public ReferenceValue generalize(TypedReferenceValue other)
ReferenceValue
generalize
in class ReferenceValue
public int equal(TypedReferenceValue other)
ReferenceValue
equal
in class ReferenceValue
NEVER
, MAYBE
, or ALWAYS
.public ReferenceValue generalize(IdentifiedReferenceValue other)
ReferenceValue
generalize
in class ReferenceValue
public int equal(IdentifiedReferenceValue other)
ReferenceValue
equal
in class ReferenceValue
NEVER
, MAYBE
, or ALWAYS
.public ReferenceValue generalize(ArrayReferenceValue other)
ReferenceValue
generalize
in class ReferenceValue
public int equal(ArrayReferenceValue other)
ReferenceValue
equal
in class ReferenceValue
NEVER
, MAYBE
, or ALWAYS
.public ReferenceValue generalize(IdentifiedArrayReferenceValue other)
ReferenceValue
generalize
in class ReferenceValue
public int equal(IdentifiedArrayReferenceValue other)
ReferenceValue
equal
in class ReferenceValue
NEVER
, MAYBE
, or ALWAYS
.public ReferenceValue generalize(DetailedArrayReferenceValue other)
ReferenceValue
generalize
in class ReferenceValue
public int equal(DetailedArrayReferenceValue other)
ReferenceValue
equal
in class ReferenceValue
NEVER
, MAYBE
, or ALWAYS
.public ReferenceValue generalize(TracedReferenceValue other)
ReferenceValue
generalize
in class ReferenceValue
public int equal(TracedReferenceValue other)
ReferenceValue
equal
in class ReferenceValue
NEVER
, MAYBE
, or ALWAYS
.public boolean isSpecific()
Value
isSpecific
in class Value
public boolean isParticular()
Value
isParticular
in class Value
public java.lang.String internalType()
Value
internalType
in class Value
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).public boolean equals(java.lang.Object object)
equals
in class ReferenceValue
public int hashCode()
hashCode
in class ReferenceValue
public java.lang.String toString()
toString
in class ReferenceValue