package models.objectOrientedTransfer;

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

public class PrimitivePushDelta extends PrimitiveDelta {
	private ReferenceEdge pushEdge1 = null;
	private ReferenceEdge pushEdge2 = null;

	public PrimitivePushDelta(ReferenceEdge pushEdge1, ReferenceEdge pushEdge2, String dataName) {
		super(dataName);
		this.pushEdge1 = pushEdge1;
		this.pushEdge2 = pushEdge2;
	}

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

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

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

	@Override
	public ObjectNode getDataType() {
		return (ObjectNode) pushEdge1.getSource();
	}

	public ReferenceEdge getPushEdge1() {
		return pushEdge1;
	}

	public ReferenceEdge getPushEdge2() {
		return pushEdge2;
	}

	@Override
	public PrimitivePushDelta copy() {
		return new PrimitivePushDelta(pushEdge1, pushEdge2, dataName);
	}

}
