public abstract class ReferenceValue extends Category1Value
ALWAYS, MAYBE, NEVER, TYPE_DOUBLE, TYPE_FLOAT, TYPE_INSTRUCTION_OFFSET, TYPE_INTEGER, TYPE_LONG, TYPE_REFERENCE, TYPE_TOP, TYPE_UNKNOWN
Constructor and Description |
---|
ReferenceValue() |
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.
|
abstract ReferenceValue |
cast(java.lang.String type,
Clazz referencedClass,
ValueFactory valueFactory,
boolean alwaysCast)
Returns this ReferenceValue, cast to the given type.
|
int |
computationalType()
Returns the computational type of this Value.
|
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(MultiTypedReferenceValue other)
Returns whether this
ReferenceValue is equal to the given other
MultiTypedReferenceValue . |
int |
equal(ParticularReferenceValue other)
Returns whether this ReferenceValue is equal to the given other
ParticularReferenceValue.
|
abstract 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(MultiTypedReferenceValue other)
Returns the generalization of this
ReferenceValue and the given other
MultiTypedReferenceValue . |
ReferenceValue |
generalize(ParticularReferenceValue other)
Returns the generalization of this ReferenceValue and the given other
ParticularReferenceValue.
|
abstract 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.
|
Value |
generalize(Value other)
Returns the generalization of this Value and the given other Value.
|
abstract Clazz |
getReferencedClass()
Returns the class that is referenced by the type.
|
abstract java.lang.String |
getType()
Returns the type.
|
int |
hashCode() |
abstract 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.
|
int |
isNotNull()
Returns whether this ReferenceValue is not
null . |
abstract int |
isNull()
Returns whether this ReferenceValue is
null . |
LongValue |
longArrayLoad(IntegerValue indexValue,
ValueFactory valueFactory)
Returns the value of the array at the given index, assuming this type
is an long array.
|
abstract boolean |
mayBeExtension()
Returns whether the actual type of this ReferenceValue may be an
extension of its type.
|
int |
notEqual(ReferenceValue other)
Returns whether this ReferenceValue and the given ReferenceValue are different.
|
ReferenceValue |
referenceArrayLoad(IntegerValue indexValue,
ValueFactory valueFactory)
Returns the value of the array at the given index, assuming this type
is a reference array.
|
ReferenceValue |
referenceValue()
Returns this Value as a ReferenceValue.
|
java.lang.String |
toString() |
java.lang.Object |
value()
Returns the value.
|
category1Value, isCategory2
category2Value, copyIfMutable, doubleValue, floatValue, instructionOffsetValue, integerValue, internalType, isParticular, isSpecific, longValue
public java.lang.Object value()
public abstract java.lang.String getType()
public abstract Clazz getReferencedClass()
public abstract boolean mayBeExtension()
public abstract int isNull()
null
.NEVER
, MAYBE
, or ALWAYS
.public abstract int instanceOf(java.lang.String otherType, Clazz otherReferencedClass)
public abstract ReferenceValue cast(java.lang.String type, Clazz referencedClass, ValueFactory valueFactory, boolean alwaysCast)
public IntegerValue arrayLength(ValueFactory valueFactory)
public IntegerValue integerArrayLoad(IntegerValue indexValue, ValueFactory valueFactory)
public LongValue longArrayLoad(IntegerValue indexValue, ValueFactory valueFactory)
public FloatValue floatArrayLoad(IntegerValue indexValue, ValueFactory valueFactory)
public DoubleValue doubleArrayLoad(IntegerValue indexValue, ValueFactory valueFactory)
public ReferenceValue referenceArrayLoad(IntegerValue indexValue, ValueFactory valueFactory)
public void arrayStore(IntegerValue indexValue, Value value)
public abstract ReferenceValue generalize(ReferenceValue other)
public abstract int equal(ReferenceValue other)
NEVER
, MAYBE
, or ALWAYS
.public final int isNotNull()
null
.NEVER
, MAYBE
, or ALWAYS
.public final int notEqual(ReferenceValue other)
NEVER
, MAYBE
, or ALWAYS
.public ReferenceValue generalize(UnknownReferenceValue other)
public int equal(UnknownReferenceValue other)
NEVER
, MAYBE
, or ALWAYS
.public ReferenceValue generalize(TypedReferenceValue other)
public int equal(TypedReferenceValue other)
NEVER
, MAYBE
, or ALWAYS
.public ReferenceValue generalize(MultiTypedReferenceValue other)
ReferenceValue
and the given other
MultiTypedReferenceValue
.public int equal(MultiTypedReferenceValue other)
ReferenceValue
is equal to the given other
MultiTypedReferenceValue
.NEVER
, MAYBE
, or ALWAYS
.public ReferenceValue generalize(IdentifiedReferenceValue other)
public int equal(IdentifiedReferenceValue other)
NEVER
, MAYBE
, or ALWAYS
.public ReferenceValue generalize(ArrayReferenceValue other)
public int equal(ArrayReferenceValue other)
NEVER
, MAYBE
, or ALWAYS
.public ReferenceValue generalize(IdentifiedArrayReferenceValue other)
public int equal(IdentifiedArrayReferenceValue other)
NEVER
, MAYBE
, or ALWAYS
.public ReferenceValue generalize(DetailedArrayReferenceValue other)
public int equal(DetailedArrayReferenceValue other)
NEVER
, MAYBE
, or ALWAYS
.public ReferenceValue generalize(TracedReferenceValue other)
public int equal(TracedReferenceValue other)
NEVER
, MAYBE
, or ALWAYS
.public ReferenceValue generalize(ParticularReferenceValue other)
public int equal(ParticularReferenceValue other)
NEVER
, MAYBE
, or ALWAYS
.public final ReferenceValue referenceValue()
Value
referenceValue
in class Value
public final Value generalize(Value other)
Value
generalize
in class Value
public final int computationalType()
Value
computationalType
in class Value
TYPE_INTEGER
,
TYPE_LONG
,
TYPE_FLOAT
,
TYPE_DOUBLE
,
TYPE_REFERENCE
, or
TYPE_INSTRUCTION_OFFSET
.public boolean equals(java.lang.Object object)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public java.lang.String toString()
toString
in class java.lang.Object