package models.objectOrientedTransfer;

import java.util.List;

/**
 * A primitive open/closed delta, which is a minimal program fragment to transfer a reference.
 * 
 * @author Nitta
 * 
 */
abstract public class PrimitiveDelta {
	protected String dataName;

	public PrimitiveDelta(String dataName) {
		this.dataName = dataName;
	}

	abstract public ObjectNode getCoordinator();

	abstract public List<ReferenceEdge> getPullEdges();

	abstract public List<ReferenceEdge> getPushEdges();

	abstract public ObjectNode getDataType();

	public String getDataName() {
		return dataName;
	}
	
	abstract public PrimitiveDelta copy();
}
