NullReferenceValue.java
package edu.udel.cis.vsl.tass.dynamic.impl.value;
import edu.udel.cis.vsl.tass.dynamic.IF.type.ReferenceValueTypeIF;
import edu.udel.cis.vsl.tass.dynamic.IF.value.VariableReferenceValueIF;
import edu.udel.cis.vsl.tass.morph.Morphic;
/**
* Represents a null pointer value. There is one such null value for every
* pointer type.
*/
public class NullReferenceValue extends ReferenceValue {
private static int classHashCode = NullReferenceValue.class.hashCode();
public NullReferenceValue(ReferenceValueTypeIF referenceType) {
super(null, referenceType);
}
@Override
protected int computeHashCode() {
return super.computeHashCode() + classHashCode;
}
@Override
public VariableReferenceValueIF variableReference() {
return null;
}
@Override
protected boolean computeEquals(Morphic component) {
return component instanceof NullReferenceValue
&& super.computeEquals(component);
}
@Override
public String toString() {
String typeString = valueType().toString();
if (!"void*".equals(typeString))
return "(" + typeString + ")NULL";
else
return "NULL";
}
@Override
public boolean isNull() {
return true;
}
}