FunctionProvider.java :  » Workflow-Engines » OSWorkflow » com » opensymphony » workflow » Java Open Source

Java Open Source » Workflow Engines » OSWorkflow 
OSWorkflow » com » opensymphony » workflow » FunctionProvider.java
/*
 * Copyright (c) 2002-2003 by OpenSymphony
 * All rights reserved.
 */
package com.opensymphony.workflow;

import com.opensymphony.module.propertyset.PropertySet;

import java.util.Map;


/**
 * Interface to be implemented by any class that are to be called from within a workflow as a function,
 * either as a pre-function or a post-function. The args nested elements within the function xml call
 * will be mapped to the properties parameter.
 *
 * @author <a href="mailto:plightbo@hotmail.com">Pat Lightbody</a>
 */
public interface FunctionProvider {
    //~ Methods ////////////////////////////////////////////////////////////////

    /**
     * Execute this function
     * @param transientVars Variables that will not be persisted. These include inputs
     * given in the {@link Workflow#initialize} and {@link Workflow#doAction} method calls.
     * There are a number of special variable names:
     * <ul>
     * <li><code>entry</code>: (object type: {@link com.opensymphony.workflow.spi.WorkflowEntry})
     *  The workflow instance
     * <li><code>context</code>:
     * (object type: {@link com.opensymphony.workflow.WorkflowContext}). The workflow context.
     * <li><code>actionId</code>: The Integer ID of the current action that was take (if applicable).
     * <li><code>currentSteps</code>: A Collection of the current steps in the workflow instance.
     * <li><code>store</code>: The {@link com.opensymphony.workflow.spi.WorkflowStore}.
     * <li><code>descriptor</code>: The {@link com.opensymphony.workflow.loader.WorkflowDescriptor}.
     * </ul>
     * Also, any variable set as a {@link com.opensymphony.workflow.Register}), will also be
     * available in the transient map, no matter what. These transient variables only last through
     * the method call that they were invoked in, such as {@link Workflow#initialize}
     * and {@link Workflow#doAction}.
     * @param args The properties for this function invocation. Properties are created
     * from arg nested elements within the xml, an arg element takes in a name attribute
     * which is the properties key, and the CDATA text contents of the element map to
     * the property value.
     * @param ps The persistent variables that are associated with the current
     * instance of the workflow. Any change made to the propertyset are persisted to
     * the propertyset implementation's persistent store.
     */
    public void execute(Map transientVars, Map args, PropertySet ps) throws WorkflowException;
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.