SharedCell.java

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

import edu.udel.cis.vsl.tass.dynamic.IF.cell.SharedCellIF;
import edu.udel.cis.vsl.tass.model.IF.ModelIF;
import edu.udel.cis.vsl.tass.model.IF.variable.SharedVariableIF;

public class SharedCell extends Cell implements SharedCellIF {

	private SharedVariableIF variable;

	SharedCell(SharedVariableIF variable) {
		super(DynamicScope.SHARED);
		assert variable != null;
		this.variable = variable;
	}

	@Override
	public int sharedVariableId() {
		return variable().idInScope();
	}

	@Override
	public SharedVariableIF variable() {
		return variable;
	}

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

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

		return result;
	}

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

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

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