⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 processdefinition.java

📁 一个工作流设计及定义的系统,可以直接与数据库结合进行系统工作流程的定义及应用.
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * Copyright (c) 2005, John Mettraux, OpenWFE.org * All rights reserved. *  * Redistribution and use in source and binary forms, with or without  * modification, are permitted provided that the following conditions are met: *  * . Redistributions of source code must retain the above copyright notice, this *   list of conditions and the following disclaimer.   *  * . Redistributions in binary form must reproduce the above copyright notice,  *   this list of conditions and the following disclaimer in the documentation  *   and/or other materials provided with the distribution. *  * . Neither the name of the "OpenWFE" nor the names of its contributors may be *   used to endorse or promote products derived from this software without *   specific prior written permission. *  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE  * POSSIBILITY OF SUCH DAMAGE. * * $Id: ProcessDefinition.java,v 1.19 2005/05/17 16:40:23 jmettraux Exp $ *///// ProcessDefinition.java//// john.mettraux@openwfe.org//// generated with // jtmpl 1.1.01 2004/05/19 (john.mettraux@openwfe.org)//package openwfe.org.engine.expressions;import openwfe.org.ApplicationContext;import openwfe.org.xml.XmlUtils;import openwfe.org.engine.workitem.InFlowWorkItem;import openwfe.org.engine.expressions.raw.RawExpression;/** * This class is only used by droflo for flow edition. * * <p><font size=2>CVS Info : * <br>$Author: jmettraux $ * <br>$Id: ProcessDefinition.java,v 1.19 2005/05/17 16:40:23 jmettraux Exp $ </font> * * @author john.mettraux@openwfe.org */public class ProcessDefinition    extends AbstractCompositeFlowExpression{    private final static org.apache.log4j.Logger log = org.apache.log4j.Logger        .getLogger(ProcessDefinition.class.getName());    //    // CONSTANTS & co    //    // FIELDS    private java.util.Map expressions = new java.util.HashMap(10);    private DefineExpression self = null;    //    // CONSTRUCTORS    /*    public ProcessDefinition ()    {        super();        log.debug("ProcessDefinition(0)");    }    */    public ProcessDefinition        (final ApplicationContext context,         final DefineExpression definition)    throws         BuildException    {        super();        log.debug("ProcessDefinition(1)");        setApplicationContext(context);        //setParentDefinition(parentDefinition);        log.debug            ("ProcessDefinition() definition : "+             definition.getClass().getName()+"  "+             definition.getId());        this.setSelf(definition);        this.setId(definition.getId());        log.debug("ProcessDefinition() set ProcessDefinition id to "+getId());    }    public ProcessDefinition         (final ApplicationContext context,         final String wfdUrl,         final String wfdName,         final String wfdRevision)    throws         BuildException    {        super();        log.debug("ProcessDefinition(2)");        setApplicationContext(context);        final FlowExpressionId id = new FlowExpressionId();        id.setWorkflowDefinitionUrl(wfdUrl);        id.setWorkflowDefinitionName(wfdName);        id.setWorkflowDefinitionRevision(wfdRevision);        setId(id);        //         // creating 'self'        final DefineExpression de = new DefineExpression();        final java.util.Map deParams = new java.util.HashMap();        deParams.put("name", wfdName);        deParams.put("revision", wfdRevision);        de.init(context(), null, getId(), null, deParams, null);        setSelf(de);    }    //    // BEAN METHODS    public java.util.Map getExpressions ()    {        return this.expressions;    }    /**     * 'self' is the DefineExpression at the root of the ProcessDefinition     * (usually a workflow-definition).     */    public DefineExpression getSelf ()    {        return this.self;    }    public void setExpressions (final java.util.Map m)    {        this.expressions = m;    }    public void setSelf (final DefineExpression self)    {        this.self = self;    }    //    // METHODS from CompositeFlowExpression    /**     * Overrides the method as found in removeChild()     */    public void removeChild (final FlowExpressionId fei)    {        getExpressions().remove(fei);        final java.util.Iterator it = getExpressions().values().iterator();        while (it.hasNext())        {            final Object o = it.next();            if (o instanceof CompositeFlowExpression)            {                final CompositeFlowExpression cfe = (CompositeFlowExpression)o;                cfe.getChildren().remove(fei);            }            else if (o instanceof OneChildExpression)            {                final OneChildExpression oce = (OneChildExpression)o;                if (oce.getChildExpressionId().equals(fei))                    oce.setChildExpressionId(null);            }        }    }    //    // METHODS    public FlowExpression get (final FlowExpressionId fei)    {        //log.debug("get() trying to get "+fei);        return (FlowExpression)getExpressions().get(fei);    }    public void add (final FlowExpression fe)    {        addChild(fe.getId());        getExpressions().put(fe.getId(), fe);        log.debug("put child "+fe.getId()+"  add(1)");    }    /**     * Adds a new expression as a child of the given 'parent', this method is     * a droflo edition method.     */    public void add         (final String expressionName, final FlowExpressionId parentId)    throws        BuildException    {        FlowExpression parent = null;        if (parentId != null)            parent = (FlowExpression)getExpressions().get(parentId);        else            parent = getSelf();        final FlowExpression fe = getExpressionMap()            .instantiateExpression(expressionName);        final FlowExpressionId id = parent.getId().copy();                final int c = newChildId(parent);        if (c < 0)        {            throw new BuildException                ("Cannot add child to an expression of class "+                 parent.getClass());        }        id.setExpressionName(expressionName);        id.setExpressionId(parent.getId().getExpressionId()+"."+c);        fe.setId(id);        fe.setParent(parentId);        // add child in this definition                getExpressions().put(fe.getId(), fe);        log.debug("put child "+fe.getId()+"  add(2)");        // add child to parent        addChild(parent, fe.getId());    }    /*     * Adds a child to a parent expression     */    private void addChild         (final FlowExpression parent, final FlowExpressionId childId)    {        if (parent instanceof CompositeFlowExpression)        {            ((CompositeFlowExpression)parent).addChild(childId);        }        else if (parent instanceof OneChildExpression)        {            ((OneChildExpression)parent).setChildExpressionId(childId);        }                     }    /*     * Returns the last int id in the expression id, ie for "0.4.5" will      * return "5".     */    private int getChildId (final FlowExpressionId fei)    {        int i = fei.getExpressionId().lastIndexOf(".");        if (i < 0) return Integer.parseInt(fei.getExpressionId());        return Integer.parseInt(fei.getExpressionId().substring(i+1));    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -