ProcessCell.java

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

import edu.udel.cis.vsl.tass.dynamic.IF.cell.ProcessCellIF;
import edu.udel.cis.vsl.tass.model.IF.ModelIF;
import edu.udel.cis.vsl.tass.model.IF.ProcessIF;
import edu.udel.cis.vsl.tass.model.IF.variable.ProcessVariableIF;

public class ProcessCell extends Cell implements ProcessCellIF {

	private ProcessVariableIF variable;

	ProcessCell(ProcessVariableIF variable) {
		super(DynamicScope.PROCESS);
		assert variable != null;
		this.variable = variable;
	}

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

	public ProcessVariableIF variable() {
		return variable;
	}

	@Override
	public ProcessIF process() {
		return variable().scope().process();
	}

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

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

		return result;
	}

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

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

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