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

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

public class Relation {
	private List<ReferenceEdge> srcResource;
	private List<ReferenceEdge> dstResource;
	private MultiplicityValue multiplicity;
	private boolean isFlat = false;
	private ObjectNode srcResourceNode;
	private ObjectNode dstResourceNode;
		
	public Relation(List<ReferenceEdge> srcResource, List<ReferenceEdge> dstResource, MultiplicityValue multiplicity) {
		isFlat = false;
		this.srcResource = srcResource;
		this.dstResource = dstResource;
		this.multiplicity = multiplicity;
	}
	
	public Relation(ObjectNode srcResourceNode, ObjectNode dstResourceNode, MultiplicityValue multiplicity) {
		this.isFlat = true;
		this.srcResource = new ArrayList<>();
		this.dstResource = new ArrayList<>();
		this.srcResourceNode = srcResourceNode;
		this.dstResourceNode = dstResourceNode;
		this.multiplicity = multiplicity;
	}
	
	public boolean isFlat() {
		return isFlat;
	}
	
	public List<ReferenceEdge> getSrcResource() {
		return srcResource;
	}

	public List<ReferenceEdge> getDstResource() {
		return dstResource;
	}
	
	public ObjectNode getSrcFirstResource() {
		if (isFlat) {
			return srcResourceNode;
		}
		return (ObjectNode) srcResource.getFirst().getSource();
	}
	
	public ObjectNode getDstFirstResource() {
		if (isFlat) {
			return dstResourceNode;
		}
		return (ObjectNode) dstResource.getFirst().getSource();
	}

	public MultiplicityValue getMultiplicity() {
		return multiplicity;
	}
}