org.yaoqiang.bpmn.model.elements.collaboration.Participant Maven / Gradle / Ivy
package org.yaoqiang.bpmn.model.elements.collaboration;
import java.util.ArrayList;
import java.util.List;
import org.yaoqiang.bpmn.model.BPMNModelUtils;
import org.yaoqiang.bpmn.model.elements.XMLAttribute;
import org.yaoqiang.bpmn.model.elements.XMLElement;
import org.yaoqiang.bpmn.model.elements.XMLTextElements;
import org.yaoqiang.bpmn.model.elements.core.foundation.BaseElement;
import org.yaoqiang.bpmn.model.elements.core.service.Interface;
/**
* Participant
*
* @author Shi Yaoqiang([email protected])
*/
public class Participant extends BaseElement {
private static final long serialVersionUID = -7710047500920385992L;
public Participant(String name) {
this((Participants) null);
setName(name);
}
public Participant(Participants parent) {
super(parent, "participant");
}
protected void fillStructure() {
XMLAttribute attrName = new XMLAttribute(this, "name");
XMLAttribute attrProcessRef = new XMLAttribute(this, "processRef");
XMLTextElements refInterfaceRef = new XMLTextElements(this, "interfaceRef");
XMLTextElements refEndPointRef = new XMLTextElements(this, "endPointRef");
ParticipantMultiplicity refParticipantMultiplicity = new ParticipantMultiplicity(this);
super.fillStructure();
add(attrName);
add(attrProcessRef);
add(refInterfaceRef);
add(refEndPointRef);
add(refParticipantMultiplicity);
}
public Participants getParent() {
return (Participants) parent;
}
public final String getName() {
return get("name").toValue();
}
public final XMLTextElements getInterfaceRefs() {
return (XMLTextElements) get("interfaceRef");
}
public final List getInterfaceRefList() {
return getInterfaceRefs().getXMLElements();
}
public final List getRefInterfaceList() {
List els = new ArrayList();
for (XMLElement ifRef : getInterfaceRefList()) {
Interface er = BPMNModelUtils.getDefinitions(parent).getInterface(ifRef.toValue());
if (er != null) {
els.add(er);
}
}
return els;
}
public final String getProcessRef() {
return get("processRef").toValue();
}
public final ParticipantMultiplicity getParticipantMultiplicity() {
return (ParticipantMultiplicity) get("participantMultiplicity");
}
public final int getMultiplicity() {
return getParticipantMultiplicity().getMaximum();
}
public final void setName(String name) {
set("name", name);
}
public final void setProcessRef(String processRef) {
set("processRef", processRef);
}
public final void setMultiplicity(String name) {
getParticipantMultiplicity().setMaximum(name);
}
public String toString() {
return getName();
}
}