All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.yaoqiang.bpmn.model.elements.gateways.EventBasedGateway Maven / Gradle / Ivy

package org.yaoqiang.bpmn.model.elements.gateways;

import org.yaoqiang.bpmn.model.elements.XMLAttribute;
import org.yaoqiang.bpmn.model.elements.core.common.FlowElements;

/**
 * EventBasedGateway
 * 
 * @author Shi Yaoqiang([email protected])
 */
public class EventBasedGateway extends Gateway {

	private static final long serialVersionUID = -8554362026033368352L;

	public EventBasedGateway(String name) {
		this((FlowElements) null);
		setName(name);
	}

	public EventBasedGateway(String name, boolean instantiate) {
		this((FlowElements) null);
		setName(name);
		setInstantiate(instantiate);
	}

	public EventBasedGateway(String name, String eventGatewayType, boolean instantiate) {
		this((FlowElements) null);
		setName(name);
		setEventGatewayType(eventGatewayType);
		setInstantiate(instantiate);
	}

	public EventBasedGateway(FlowElements parent) {
		super(parent, "eventBasedGateway");
	}

	protected void fillStructure() {
		XMLAttribute attrInstantiate = new XMLAttribute(this, "instantiate", Boolean.FALSE.toString());
		XMLAttribute attrEventGatewayType = new XMLAttribute(this, "eventGatewayType", EventGatewayType.Exclusive.toString());

		super.fillStructure();
		add(attrInstantiate);
		add(attrEventGatewayType);
	}

	public final boolean isInstantiate() {
		return Boolean.parseBoolean(get("instantiate").toValue());
	}
	
	public final String getEventGatewayType() {
		return get("eventGatewayType").toValue();
	}
	
	public final void setInstantiate(boolean instantiate) {
		set("instantiate", String.valueOf(instantiate));
	}
	
	public final void setEventGatewayType(String eventGatewayType) {
		set("eventGatewayType", eventGatewayType);
	}
	
	public enum EventGatewayType {

		Parallel("Parallel"), Exclusive("Exclusive");

		private String eventGatewayType;

		EventGatewayType(String eventGatewayType) {
			this.setEventGatewayType(eventGatewayType);
		}

		public void setEventGatewayType(String eventGatewayType) {
			this.eventGatewayType = eventGatewayType;
		}

		public String getEventGatewayType() {
			return eventGatewayType;
		}

	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy