public abstract class Value
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static int |
ALWAYS |
static int |
MAYBE |
static int |
NEVER |
static int |
TYPE_DOUBLE |
static int |
TYPE_FLOAT |
static int |
TYPE_INSTRUCTION_OFFSET |
static int |
TYPE_INTEGER |
static int |
TYPE_LONG |
static int |
TYPE_REFERENCE |
static int |
TYPE_TOP |
static int |
TYPE_UNKNOWN |
Constructor and Description |
---|
Value() |
Modifier and Type | Method and Description |
---|---|
Category1Value |
category1Value()
Returns this Value as a Category1Value.
|
Category2Value |
category2Value()
Returns this Value as a Category2Value.
|
abstract int |
computationalType()
Returns the computational type of this Value.
|
Value |
copyIfMutable()
Returns a deep copy of the value if it mutable, returns the value itself otherwise.
|
DoubleValue |
doubleValue()
Returns this Value as a DoubleValue.
|
FloatValue |
floatValue()
Returns this Value as a FloatValue.
|
abstract Value |
generalize(Value other)
Returns the generalization of this Value and the given other Value.
|
InstructionOffsetValue |
instructionOffsetValue()
Returns this Value as an InstructionOffsetValue.
|
IntegerValue |
integerValue()
Returns this Value as an IntegerValue.
|
abstract java.lang.String |
internalType()
Returns the internal type of this Value.
|
abstract boolean |
isCategory2()
Returns whether the computational type of this Value is a category 2 type.
|
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 |
longValue()
Returns this Value as a LongValue.
|
ReferenceValue |
referenceValue()
Returns this Value as a ReferenceValue.
|
public static final int NEVER
public static final int MAYBE
public static final int ALWAYS
public static final int TYPE_UNKNOWN
public static final int TYPE_INTEGER
public static final int TYPE_LONG
public static final int TYPE_FLOAT
public static final int TYPE_DOUBLE
public static final int TYPE_REFERENCE
public static final int TYPE_INSTRUCTION_OFFSET
public static final int TYPE_TOP
public Category1Value category1Value()
public Category2Value category2Value()
public IntegerValue integerValue()
public LongValue longValue()
public FloatValue floatValue()
public DoubleValue doubleValue()
public ReferenceValue referenceValue()
public InstructionOffsetValue instructionOffsetValue()
public boolean isSpecific()
public boolean isParticular()
public abstract Value generalize(Value other)
public abstract boolean isCategory2()
public abstract int computationalType()
TYPE_INTEGER
, TYPE_LONG
, TYPE_FLOAT
,
TYPE_DOUBLE
, TYPE_REFERENCE
, or TYPE_INSTRUCTION_OFFSET
.public abstract java.lang.String internalType()
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 Value copyIfMutable()