CommonVariableReference.java

package edu.udel.cis.vsl.abc.ast.value.common;

import edu.udel.cis.vsl.abc.ast.entity.IF.Variable;
import edu.udel.cis.vsl.abc.ast.type.IF.PointerType;
import edu.udel.cis.vsl.abc.ast.value.IF.VariableReference;

public class CommonVariableReference extends CommonAddressValue implements
		VariableReference {

	private final static int classCode = CommonVariableReference.class
			.hashCode();

	private Variable variable;

	public CommonVariableReference(PointerType type, Variable variable) {
		super(type);
		this.variable = variable;
	}

	@Override
	public String toString() {
		return "VariableReference[" + variable + "]";
	}

	@Override
	public boolean equals(Object object) {
		if (this == object)
			return true;
		if (object instanceof CommonVariableReference) {
			return variable.equals(((CommonVariableReference) object).variable);
		}
		return false;
	}

	@Override
	public int hashCode() {
		return classCode + variable.hashCode();
	}

	@Override
	public Variable getVariable() {
		return variable;
	}

}