public class TypedReferenceValue extends ReferenceValue
null. If the type is null, the value is
null.| Modifier and Type | Field and Description |
|---|---|
protected boolean |
mayBeNull |
protected Clazz |
referencedClass |
protected String |
type |
ALWAYS, MAYBE, NEVER, TYPE_DOUBLE, TYPE_FLOAT, TYPE_INSTRUCTION_OFFSET, TYPE_INTEGER, TYPE_LONG, TYPE_REFERENCE, TYPE_TOP| Constructor and Description |
|---|
TypedReferenceValue(String type,
Clazz referencedClass,
boolean mayBeNull)
Creates a new TypedReferenceValue.
|
| Modifier and Type | Method and Description |
|---|---|
int |
equal(proguard.evaluation.value.ArrayReferenceValue other)
Returns whether this ReferenceValue is equal to the given other
ArrayReferenceValue.
|
int |
equal(proguard.evaluation.value.DetailedArrayReferenceValue other)
Returns whether this ReferenceValue is equal to the given other
DetailedArrayReferenceValue.
|
int |
equal(proguard.evaluation.value.IdentifiedArrayReferenceValue other)
Returns whether this ReferenceValue is equal to the given other
IdentifiedArrayReferenceValue.
|
int |
equal(proguard.evaluation.value.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(TypedReferenceValue other)
Returns whether this ReferenceValue is equal to the given other
TypedReferenceValue.
|
boolean |
equals(Object object) |
ReferenceValue |
generalize(proguard.evaluation.value.ArrayReferenceValue other)
Returns the generalization of this ReferenceValue and the given other
ArrayReferenceValue.
|
ReferenceValue |
generalize(proguard.evaluation.value.DetailedArrayReferenceValue other)
Returns the generalization of this ReferenceValue and the given other
DetailedArrayReferenceValue.
|
ReferenceValue |
generalize(proguard.evaluation.value.IdentifiedArrayReferenceValue other)
Returns the generalization of this ReferenceValue and the given other
IdentifiedArrayReferenceValue.
|
ReferenceValue |
generalize(proguard.evaluation.value.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(TypedReferenceValue other)
Returns the generalization of this ReferenceValue and the given other
TypedReferenceValue.
|
ReferenceValue |
generalizeMayBeNull(boolean mayBeNull)
Returns a generalization of this ReferenceValue that may be null,
depending on the flag.
|
Clazz |
getReferencedClass()
Returns the class that is referenced by the type.
|
String |
getType()
Returns the type.
|
int |
hashCode() |
int |
instanceOf(String otherType,
Clazz otherReferencedClass)
Returns whether the type is an instance of the given type.
|
String |
internalType()
Returns the internal type of this Value.
|
int |
isNull()
Returns whether the type is
null. |
boolean |
isParticular()
Returns whether this Value represents a single particular (known)
value.
|
ReferenceValue |
referenceArrayLoad(IntegerValue indexValue,
ValueFactory valueFactory)
Returns the value of the array at the given index, assuming this type
is a reference array.
|
String |
toString() |
arrayLength, arrayStore, computationalType, doubleArrayLoad, floatArrayLoad, generalize, integerArrayLoad, isNotNull, longArrayLoad, notEqual, referenceValuecategory1Value, isCategory2category2Value, doubleValue, floatValue, instructionOffsetValue, integerValue, isSpecific, longValueprotected final String type
protected final Clazz referencedClass
protected final boolean mayBeNull
public String getType()
ReferenceValuegetType in class ReferenceValuepublic Clazz getReferencedClass()
ReferenceValuegetReferencedClass in class ReferenceValuepublic int isNull()
ReferenceValuenull.isNull in class ReferenceValuepublic int instanceOf(String otherType, Clazz otherReferencedClass)
ReferenceValueinstanceOf in class ReferenceValuepublic ReferenceValue generalizeMayBeNull(boolean mayBeNull)
ReferenceValuegeneralizeMayBeNull in class ReferenceValuepublic ReferenceValue referenceArrayLoad(IntegerValue indexValue, ValueFactory valueFactory)
ReferenceValuereferenceArrayLoad 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(TypedReferenceValue other)
ReferenceValuegeneralize in class ReferenceValuepublic int equal(TypedReferenceValue other)
ReferenceValueequal in class ReferenceValueNEVER, MAYBE, or ALWAYS.public ReferenceValue generalize(proguard.evaluation.value.IdentifiedReferenceValue other)
ReferenceValuegeneralize in class ReferenceValuepublic int equal(proguard.evaluation.value.IdentifiedReferenceValue other)
ReferenceValueequal in class ReferenceValueNEVER, MAYBE, or ALWAYS.public ReferenceValue generalize(proguard.evaluation.value.ArrayReferenceValue other)
ReferenceValuegeneralize in class ReferenceValuepublic int equal(proguard.evaluation.value.ArrayReferenceValue other)
ReferenceValueequal in class ReferenceValueNEVER, MAYBE, or ALWAYS.public ReferenceValue generalize(proguard.evaluation.value.IdentifiedArrayReferenceValue other)
ReferenceValuegeneralize in class ReferenceValuepublic int equal(proguard.evaluation.value.IdentifiedArrayReferenceValue other)
ReferenceValueequal in class ReferenceValueNEVER, MAYBE, or ALWAYS.public ReferenceValue generalize(proguard.evaluation.value.DetailedArrayReferenceValue other)
ReferenceValuegeneralize in class ReferenceValuepublic int equal(proguard.evaluation.value.DetailedArrayReferenceValue other)
ReferenceValueequal in class ReferenceValueNEVER, MAYBE, or ALWAYS.public boolean isParticular()
ValueisParticular in class Valuepublic final String internalType()
ValueinternalType in class ValueClassConstants.TYPE_BOOLEAN,
ClassConstants.TYPE_BYTE,
ClassConstants.TYPE_CHAR,
ClassConstants.TYPE_SHORT,
ClassConstants.TYPE_INT,
ClassConstants.TYPE_LONG,
ClassConstants.TYPE_FLOAT,
ClassConstants.TYPE_DOUBLE,
ClassConstants.TYPE_CLASS_START ... ClassConstants.TYPE_CLASS_END, or
an array type containing any of these types (always as String).Copyright © 2015. All Rights Reserved.