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

org.yaoqiang.bpmn.model.elements.data.DataObjectReference Maven / Gradle / Ivy

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

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

/**
 * DataObjectReference
 * 
 * @author Shi Yaoqiang([email protected])
 */
public class DataObjectReference extends FlowElement implements ItemAwareElement {

	private static final long serialVersionUID = 5056348526025974192L;

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

	public DataObjectReference(FlowElements parent) {
		super(parent, "dataObjectReference");
	}

	protected void fillStructure() {
		XMLAttribute attrDataObjectRef = new XMLAttribute(this, "dataObjectRef");
		XMLAttribute attrItemSubjectRef = new XMLAttribute(this, "itemSubjectRef");
		DataState refDataState = new DataState(this);

		super.fillStructure();
		add(attrItemSubjectRef);
		add(attrDataObjectRef);
		add(refDataState);
	}

	public final String getDataObjectRef() {
		return get("dataObjectRef").toValue();
	}

	public final String getDataState() {
		return ((DataState) get("dataState")).getName();
	}

	public final DataObject getRefDataObject() {
		for (XMLElement obj : getParent().getAccessibleDataObjects()) {
			if (((DataObject) obj).getId().equals(getDataObjectRef())) {
				return (DataObject) obj;
			}
		}
		return null;
	}

	public final void setDataObjectRef(String dataObjectRef) {
		set("dataObjectRef", dataObjectRef);
	}

	public final void setDataState(String dataState) {
		((DataState) get("dataState")).setName(dataState);
	}

	public String toString() {
		return getRefDataObject().toString();
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy