package models.objectOrientedTransfer;
import java.util.List;
public class Relation {
private ObjectHierarchy srcObjectHierarchy;
private ObjectHierarchy dstObjectHierarchy;
private MultiplicityValue multiplicity;
private boolean isFlat = false;
public Relation(List<ReferenceEdge> srcObjectHierarchy, List<ReferenceEdge> dstObjectHierarchy, MultiplicityValue multiplicity) {
isFlat = false;
this.srcObjectHierarchy = new ObjectHierarchy(srcObjectHierarchy);
this.dstObjectHierarchy = new ObjectHierarchy(dstObjectHierarchy);
this.multiplicity = multiplicity;
}
public Relation(ObjectNode srcObjectNode, List<ReferenceEdge> dstObjectHierarchy, MultiplicityValue multiplicity) {
isFlat = false;
this.srcObjectHierarchy = new ObjectHierarchy(srcObjectNode);
this.dstObjectHierarchy = new ObjectHierarchy(dstObjectHierarchy);
this.multiplicity = multiplicity;
}
public Relation(List<ReferenceEdge> srcObjectHierarchy, ObjectNode dstObjectNode, MultiplicityValue multiplicity) {
isFlat = false;
this.srcObjectHierarchy = new ObjectHierarchy(srcObjectHierarchy);
this.dstObjectHierarchy = new ObjectHierarchy(dstObjectNode);
this.multiplicity = multiplicity;
}
public Relation(ObjectNode srcObjectNode, ObjectNode dstObjectNode, MultiplicityValue multiplicity) {
this.isFlat = true;
this.srcObjectHierarchy = new ObjectHierarchy(srcObjectNode);
this.dstObjectHierarchy = new ObjectHierarchy(dstObjectNode);
this.multiplicity = multiplicity;
}
public boolean isFlat() {
return isFlat;
}
public ObjectHierarchy getSrcObjectHierarchy() {
return srcObjectHierarchy;
}
public ObjectHierarchy getDstObjectHierarchy() {
return dstObjectHierarchy;
}
public ObjectNode getSrcTopObject() {
return srcObjectHierarchy.getTop();
}
public ObjectNode getDstTopObject() {
return dstObjectHierarchy.getTop();
}
public MultiplicityValue getMultiplicity() {
return multiplicity;
}
}