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.
|
@NotNull AnalyzedObject |
getValue() |
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()
Deprecated.
|
category1Value, isCategory2
category2Value, copyIfMutable, doubleValue, floatValue, instructionOffsetValue, integerValue, internalType, isParticular, isSpecific, longValue
@Deprecated public java.lang.Object value()
Deprecated, use getValue()
instead.
@NotNull public @NotNull AnalyzedObject getValue()
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