?? conditionalresultdescriptor.java
字號:
/* * Copyright (c) 2002-2003 by OpenSymphony * All rights reserved. */package com.opensymphony.workflow.loader;import com.opensymphony.workflow.InvalidWorkflowDescriptorException;import org.w3c.dom.Element;import java.io.PrintWriter;import java.util.ArrayList;import java.util.List;/** * @author <a href="mailto:plightbo@hotmail.com">Pat Lightbody</a> */public class ConditionalResultDescriptor extends ResultDescriptor { //~ Instance fields //////////////////////////////////////////////////////// protected List conditions = new ArrayList(); //~ Constructors /////////////////////////////////////////////////////////// /** * @deprecated use {@link DescriptorFactory} instead */ ConditionalResultDescriptor() { } /** * @deprecated use {@link DescriptorFactory} instead */ ConditionalResultDescriptor(Element conditionalResult) { init(conditionalResult); } //~ Methods //////////////////////////////////////////////////////////////// public List getConditions() { return conditions; } public String getDestination() { WorkflowDescriptor desc = null; String sName = ""; AbstractDescriptor actionDesc = getParent().getParent(); if (actionDesc != null) { desc = (WorkflowDescriptor) actionDesc.getParent(); } if (join != 0) { return "join #" + join; } else if (split != 0) { return "split #" + split; } else { if (desc != null) { sName = desc.getStep(step).getName(); } return "step #" + step + " [" + sName + "]"; } } public void validate() throws InvalidWorkflowDescriptorException { super.validate(); if (conditions.size() == 0) { throw new InvalidWorkflowDescriptorException("Conditional result from " + ((ActionDescriptor) getParent()).getName() + " to " + getDestination() + " must have at least one condition"); } ValidationHelper.validate(conditions); } public void writeXML(PrintWriter out, int indent) { XMLUtil.printIndent(out, indent++); StringBuffer buf = new StringBuffer(); buf.append("<result"); if (hasId()) { buf.append(" id=\"").append(getId()).append('\"'); } if ((dueDate != null) && (dueDate.length() > 0)) { buf.append(" due-date=\"").append(getDueDate()).append('\"'); } buf.append(" old-status=\"").append(oldStatus).append('\"'); if (join != 0) { buf.append(" join=\"").append(join).append('\"'); } else if (split != 0) { buf.append(" split=\"").append(split).append('\"'); } else { buf.append(" status=\"").append(status).append('\"'); buf.append(" step=\"").append(step).append('\"'); if ((owner != null) && (owner.length() > 0)) { buf.append(" owner=\"").append(owner).append('\"'); } if ((displayName != null) && (displayName.length() > 0)) { buf.append(" display-name=\"").append(displayName).append('\"'); } } buf.append('>'); out.println(buf); for (int i = 0; i < conditions.size(); i++) { ConditionsDescriptor condition = (ConditionsDescriptor) conditions.get(i); condition.writeXML(out, indent); } if (validators.size() > 0) { XMLUtil.printIndent(out, indent++); out.println("<validators>"); for (int i = 0; i < validators.size(); i++) { ValidatorDescriptor validator = (ValidatorDescriptor) validators.get(i); validator.writeXML(out, indent); } XMLUtil.printIndent(out, --indent); out.println("</validators>"); } printPreFunctions(out, indent); printPostFunctions(out, indent); XMLUtil.printIndent(out, --indent); out.println("</result>"); } protected void init(Element conditionalResult) { super.init(conditionalResult); List conditionNodes = XMLUtil.getChildElements(conditionalResult, "conditions"); int length = conditionNodes.size(); for (int i = 0; i < length; i++) { Element condition = (Element) conditionNodes.get(i); ConditionsDescriptor conditionDescriptor = DescriptorFactory.getFactory().createConditionsDescriptor(condition); conditionDescriptor.setParent(this); this.conditions.add(conditionDescriptor); } }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -