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;
}
}