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, isNotNull, notEqual, referenceValue, valuecategory1Value, isCategory2category2Value, copyIfMutable, doubleValue, floatValue, instructionOffsetValue, integerValue, longValuepublic TracedReferenceValue(ReferenceValue referenceValue, Value traceValue)
public ReferenceValue getReferenceValue()
public Value getTraceValue()
public java.lang.String getType()
ReferenceValuegetType in class ReferenceValuepublic Clazz getReferencedClass()
ReferenceValuegetReferencedClass in class ReferenceValuepublic boolean mayBeExtension()
ReferenceValuemayBeExtension in class ReferenceValuepublic int isNull()
ReferenceValuenull.isNull in class ReferenceValueNEVER, MAYBE, or ALWAYS.public int instanceOf(java.lang.String otherType,
Clazz otherReferencedClass)
ReferenceValueinstanceOf in class ReferenceValuepublic ReferenceValue cast(java.lang.String type, Clazz referencedClass, ValueFactory valueFactory, boolean alwaysCast)
ReferenceValuecast in class ReferenceValuepublic IntegerValue arrayLength(ValueFactory valueFactory)
ReferenceValuearrayLength in class ReferenceValuepublic IntegerValue integerArrayLoad(IntegerValue indexValue, ValueFactory valueFactory)
ReferenceValueintegerArrayLoad in class ReferenceValuepublic LongValue longArrayLoad(IntegerValue indexValue, ValueFactory valueFactory)
ReferenceValuelongArrayLoad in class ReferenceValuepublic FloatValue floatArrayLoad(IntegerValue indexValue, ValueFactory valueFactory)
ReferenceValuefloatArrayLoad in class ReferenceValuepublic DoubleValue doubleArrayLoad(IntegerValue indexValue, ValueFactory valueFactory)
ReferenceValuedoubleArrayLoad in class ReferenceValuepublic ReferenceValue referenceArrayLoad(IntegerValue indexValue, ValueFactory valueFactory)
ReferenceValuereferenceArrayLoad in class ReferenceValuepublic void arrayStore(IntegerValue indexValue, Value value)
ReferenceValuearrayStore in class ReferenceValuepublic ReferenceValue generalize(ReferenceValue other)
ReferenceValuegeneralize in class ReferenceValuepublic int equal(ReferenceValue other)
ReferenceValueequal in class ReferenceValueNEVER, MAYBE, or ALWAYS.public ReferenceValue generalize(UnknownReferenceValue other)
ReferenceValuegeneralize in class ReferenceValuepublic int equal(UnknownReferenceValue other)
ReferenceValueequal in class ReferenceValueNEVER, MAYBE, or ALWAYS.public ReferenceValue generalize(TypedReferenceValue other)
ReferenceValuegeneralize in class ReferenceValuepublic int equal(TypedReferenceValue other)
ReferenceValueequal in class ReferenceValueNEVER, MAYBE, or ALWAYS.public ReferenceValue generalize(IdentifiedReferenceValue other)
ReferenceValuegeneralize in class ReferenceValuepublic int equal(IdentifiedReferenceValue other)
ReferenceValueequal in class ReferenceValueNEVER, MAYBE, or ALWAYS.public ReferenceValue generalize(ArrayReferenceValue other)
ReferenceValuegeneralize in class ReferenceValuepublic int equal(ArrayReferenceValue other)
ReferenceValueequal in class ReferenceValueNEVER, MAYBE, or ALWAYS.public ReferenceValue generalize(IdentifiedArrayReferenceValue other)
ReferenceValuegeneralize in class ReferenceValuepublic int equal(IdentifiedArrayReferenceValue other)
ReferenceValueequal in class ReferenceValueNEVER, MAYBE, or ALWAYS.public ReferenceValue generalize(DetailedArrayReferenceValue other)
ReferenceValuegeneralize in class ReferenceValuepublic int equal(DetailedArrayReferenceValue other)
ReferenceValueequal in class ReferenceValueNEVER, MAYBE, or ALWAYS.public ReferenceValue generalize(TracedReferenceValue other)
ReferenceValuegeneralize in class ReferenceValuepublic int equal(TracedReferenceValue other)
ReferenceValueequal in class ReferenceValueNEVER, MAYBE, or ALWAYS.public boolean isSpecific()
ValueisSpecific in class Valuepublic boolean isParticular()
ValueisParticular in class Valuepublic java.lang.String internalType()
ValueinternalType in class ValueTypeConstants.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 ReferenceValuepublic int hashCode()
hashCode in class ReferenceValuepublic java.lang.String toString()
toString in class ReferenceValue