Newer
Older
DesignCraft / src / main / java / models / objectOrientedTransfer / PrimitivePullPushDelta.java
package models.objectOrientedTransfer;

import java.util.ArrayList;
import java.util.List;

public class PrimitivePullPushDelta extends PrimitiveDelta {
	private ReferenceEdge pullEdge = null;
	private ReferenceEdge pushEdge = null;

	public PrimitivePullPushDelta(ReferenceEdge pullEdge, ReferenceEdge pushEdge, String dataName) {
		super(dataName);
		this.pullEdge = pullEdge;
		this.pushEdge = pushEdge;
	}

	@Override
	public ObjectNode getCoordinator() {
		return (ObjectNode) pushEdge.getSource();
	}

	@Override
	public List<ReferenceEdge> getPullEdges() {
		List<ReferenceEdge> pullEdges = new ArrayList<>();
		pullEdges.add(pullEdge);
		return pullEdges;
	}

	@Override
	public List<ReferenceEdge> getPushEdges() {
		List<ReferenceEdge> pushEdges = new ArrayList<>();
		pushEdges.add(pushEdge);
		return pushEdges;
	}

	@Override
	public ObjectNode getDataType() {
		return (ObjectNode) pullEdge.getDestination();
	}

	public ReferenceEdge getPullEdge() {
		return pullEdge;
	}

	public ReferenceEdge getPushEdge() {
		return pushEdge;
	}

	public PrimitivePullPushDelta copy() {
		return new PrimitivePullPushDelta(pullEdge, pushEdge, dataName);
	}

}