package sushi.bpmn.element; import java.util.List; import javax.persistence.Entity; import javax.persistence.Inheritance; import javax.persistence.InheritanceType; import javax.persistence.Table; import sushi.bpmn.monitoringpoint.MonitoringPoint; /** * This class is a logical representation for a BPMN gateway element. * @author micha */ @Entity @Table(name = "AbstractBPMNGateway") @Inheritance(strategy=InheritanceType.JOINED) public abstract class AbstractBPMNGateway extends AbstractBPMNElement { private static final long serialVersionUID = 1L; public AbstractBPMNGateway() { super(); } public AbstractBPMNGateway(String ID, String name) { super(ID, name); } public AbstractBPMNGateway(String ID, String name, List<MonitoringPoint> monitoringPoints) { super(ID, name); } /** * Proofs, if a gateway is a joining gateway. * @return */ public boolean isJoinGateway(){ return (this.getPredecessors().size() > 1 && this.getSuccessors().size() == 1); } /** * Proofs, if a gateway is a split gateway. * @return */ public boolean isSplitGateway(){ return (this.getPredecessors().size() == 1 && this.getSuccessors().size() > 1); } }