LocalCell.java

package edu.udel.cis.vsl.tass.dynamic.impl.cell;

import edu.udel.cis.vsl.tass.dynamic.IF.cell.LocalCellIF;
import edu.udel.cis.vsl.tass.model.IF.ModelIF;
import edu.udel.cis.vsl.tass.model.IF.variable.LocalVariableIF;

public class LocalCell extends Cell implements LocalCellIF {

	private LocalVariableIF variable;

	private int stackIndex;

	private int localID;

	public LocalCell(LocalVariableIF variable, int stackIndex) {
		super(DynamicScope.LOCAL);
		this.variable = variable;
		this.stackIndex = stackIndex;
		this.localID = variable.idInScope();
	}

	public int stackIndex() {
		return stackIndex;
	}

	public LocalVariableIF variable() {
		return variable;
	}

	public int localID() {
		return localID;
	}

	public String toString() {
		String result = variable.name();

		return result;
	}

	public boolean equals(Object object) {
		if (object instanceof LocalCell) {
			LocalCell that = (LocalCell) object;

			return super.equals(that) && variable.equals(that.variable)
					&& stackIndex == that.stackIndex;
		}
		return false;
	}

	public int hashCode() {
		return super.hashCode() + variable.hashCode() + stackIndex;
	}

	public ModelIF model() {
		return variable.model();
	}
}