📄 conditionsdescriptor.java
字号:
/* * Copyright (c) 2002-2003 by OpenSymphony * All rights reserved. */package com.opensymphony.workflow.loader;import com.opensymphony.workflow.InvalidWorkflowDescriptorException;import com.opensymphony.workflow.util.Validatable;import com.opensymphony.workflow.util.XMLizable;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import java.io.PrintWriter;import java.util.ArrayList;import java.util.List;/** * Date: May 12, 2004 * Time: 9:04:25 AM * * @author hani */public class ConditionsDescriptor extends AbstractDescriptor implements Validatable { //~ Instance fields //////////////////////////////////////////////////////// private List conditions = new ArrayList(); private String type; //~ Constructors /////////////////////////////////////////////////////////// public ConditionsDescriptor() { } public ConditionsDescriptor(Element element) { type = element.getAttribute("type"); NodeList children = element.getChildNodes(); int size = children.getLength(); for (int i = 0; i < size; i++) { Node child = children.item(i); if (child instanceof Element) { if ("condition".equals(child.getNodeName())) { ConditionDescriptor condition = new ConditionDescriptor((Element) child); conditions.add(condition); } else if ("conditions".equals(child.getNodeName())) { ConditionsDescriptor condition = new ConditionsDescriptor((Element) child); conditions.add(condition); } } } } //~ Methods //////////////////////////////////////////////////////////////// public void setConditions(List conditions) { this.conditions = conditions; } public List getConditions() { return conditions; } public void setType(String type) { this.type = type; } public String getType() { return type; } public void validate() throws InvalidWorkflowDescriptorException { ValidationHelper.validate(conditions); if ((conditions.size() > 1) && (type == null)) { throw new InvalidWorkflowDescriptorException("Conditions must have AND or OR type specified"); } } public void writeXML(PrintWriter out, int indent) { if (conditions.size() > 0) { XMLUtil.printIndent(out, indent++); StringBuffer sb = new StringBuffer("<conditions"); if (conditions.size() > 1) { sb.append(" type=\"").append(type).append("\""); } sb.append(">"); out.println(sb.toString()); for (int i = 0; i < conditions.size(); i++) { XMLizable condition = (XMLizable) conditions.get(i); condition.writeXML(out, indent); } XMLUtil.printIndent(out, --indent); out.println("</conditions>"); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -