SynchronousTransition.java

package edu.udel.cis.vsl.tass.transition.impl;

import java.io.PrintWriter;

import edu.udel.cis.vsl.tass.dynamic.IF.value.ValueIF;
import edu.udel.cis.vsl.tass.model.IF.ModelIF;
import edu.udel.cis.vsl.tass.model.IF.statement.ReceiveStatementIF;
import edu.udel.cis.vsl.tass.model.IF.statement.SendStatementIF;
import edu.udel.cis.vsl.tass.transition.IF.SynchronousTransitionIF;

public class SynchronousTransition extends Transition implements
		SynchronousTransitionIF {

	private SendStatementIF send;

	private ReceiveStatementIF receive;

	SynchronousTransition(SendStatementIF send, ReceiveStatementIF receive,
			ValueIF pathCondition) {
		super(pathCondition);
		assert send != null;
		assert receive != null;
		this.send = send;
		this.receive = receive;
	}

	@Override
	public SendStatementIF send() {
		return send;
	}

	@Override
	public ReceiveStatementIF receive() {
		return receive;
	}

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

	@Override
	public String toString() {
		return send.process() + ": " + send + "\n" + receive.process() + ": "
				+ receive;
	}

	@Override
	public void print(PrintWriter out) {
		send.print(out);
		out.print(" AND ");
		receive.print(out);
	}
}