package com.eas.model; import com.eas.client.metadata.Field; import com.eas.client.metadata.Parameter; /** * * @author mg */ public class Relation { // runtime protected Entity leftEntity; protected Field leftField; protected Entity rightEntity; protected Field rightField; public Relation() { super(); } public Relation(Entity aLeftEntity, Field aLeftField, Entity aRightEntity, Field aRightField) { this(); leftEntity = aLeftEntity; leftField = aLeftField; rightEntity = aRightEntity; rightField = aRightField; } public void accept(ModelVisitor visitor) { if (visitor != null) visitor.visit(this); } public Entity getLeftEntity() { return leftEntity; } public Entity getRightEntity() { return rightEntity; } public Field getLeftField() { return leftField; } public void setLeftField(Field aValue) { leftField = aValue; } public Field getRightField() { return rightField; } public void setRightField(Field aValue) { rightField = aValue; } public boolean isLeftParameter() { return leftField instanceof Parameter; } public boolean isRightParameter() { return rightField instanceof Parameter; } public boolean isLeftField() { return !isLeftParameter(); } public boolean isRightField() { return !isRightParameter(); } public void setLeftEntity(Entity aValue) { leftEntity = aValue; } public void setRightEntity(Entity aValue) { rightEntity = aValue; } public Relation copy() { Relation copied = new Relation(); assign(copied); return copied; } protected void assign(Relation copied) { copied.setLeftEntity(leftEntity); copied.setLeftField(leftField); copied.setRightEntity(rightEntity); copied.setRightField(rightField); } public Parameter getLeftParameter() { if (isLeftParameter()) { return (Parameter) leftField; } else { return null; } } public Parameter getRightParameter() { if (isRightParameter()) { return (Parameter) rightField; } else { return null; } } }