MessageFactory.java

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

import edu.udel.cis.vsl.tass.dynamic.IF.value.MessageIF;
import edu.udel.cis.vsl.tass.dynamic.IF.value.ValueIF;
import edu.udel.cis.vsl.tass.model.IF.ProcessIF;
import edu.udel.cis.vsl.tass.morph.MorphicFactory;

public class MessageFactory extends MorphicFactory<MessageIF> {

	private ValueFactory valueFactory;

	public MessageFactory(ValueFactory valueFactory) {
		assert valueFactory != null;
		this.valueFactory = valueFactory;
	}

	public Message message(ProcessIF source, ProcessIF destination,
			ValueIF tag, ValueIF data) {
		Message newMessage = new Message(data, source, destination, tag);

		return newMessage;
	}

	@Override
	public void canonicalizeChildren(MessageIF message) {
		((Message) message).canonicalizeChildren(this, valueFactory);
	}
}