public class Constant extends Object implements AbstractValue<Constant>
Modifier and Type | Class and Description |
---|---|
static class |
Constant.Type |
Modifier and Type | Field and Description |
---|---|
protected Constant.Type |
type
What kind of abstract value is this?
|
protected @Nullable Integer |
value
The value of this abstract value (or null).
|
Constructor and Description |
---|
Constant(Constant.Type type)
Create a constant for
type . |
Constant(Integer value)
Create a constant for
value . |
Modifier and Type | Method and Description |
---|---|
Constant |
copy() |
boolean |
equals(@Nullable Object obj) |
Integer |
getValue()
Returns the value.
|
int |
hashCode() |
boolean |
isBottom()
Returns whether or not the constant is BOTTOM.
|
boolean |
isConstant()
Returns whether or not the constant is CONSTANT.
|
boolean |
isTop()
Returns whether or not the constant is TOP.
|
Constant |
leastUpperBound(Constant other)
Compute the least upper bound of two values.
|
String |
toString() |
protected final Constant.Type type
public Constant(Constant.Type type)
type
.public Constant(Integer value)
value
.public boolean isTop()
public boolean isBottom()
@EnsuresNonNullIf(result=true, expression="value") public boolean isConstant()
public Integer getValue()
public Constant copy()
public Constant leastUpperBound(Constant other)
AbstractValue
Important: This method must fulfill the following contract:
this
.
other
.
this
, even if the signature is
more permissive.
leastUpperBound
in interface AbstractValue<Constant>