KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > infoglue > cms > applications > workflowtool > condition > InfoglueCondition


1 /* ===============================================================================
2  *
3  * Part of the InfoGlue Content Management Platform (www.infoglue.org)
4  *
5  * ===============================================================================
6  *
7  * Copyright (C)
8  *
9  * This program is free software; you can redistribute it and/or modify it under
10  * the terms of the GNU General Public License version 2, as published by the
11  * Free Software Foundation. See the file LICENSE.html for more information.
12  *
13  * This program is distributed in the hope that it will be useful, but WITHOUT
14  * ANY WARRANTY, including the implied warranty of MERCHANTABILITY or FITNESS
15  * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License along with
18  * this program; if not, write to the Free Software Foundation, Inc. / 59 Temple
19  * Place, Suite 330 / Boston, MA 02111-1307 / USA.
20  *
21  * ===============================================================================
22  */

23 package org.infoglue.cms.applications.workflowtool.condition;
24
25 import java.util.Map JavaDoc;
26
27 import org.apache.log4j.Logger;
28 import org.infoglue.cms.applications.tasktool.actions.ViewExecuteTaskAction;
29 import org.infoglue.cms.applications.workflowtool.util.InfoglueWorkflowBase;
30
31 import com.opensymphony.module.propertyset.PropertySet;
32 import com.opensymphony.workflow.Condition;
33 import com.opensymphony.workflow.WorkflowException;
34
35 /**
36  * Base class for all infoglue workflow conditions.
37  */

38 public abstract class InfoglueCondition extends InfoglueWorkflowBase implements Condition
39 {
40     private final static Logger logger = Logger.getLogger(InfoglueCondition.class.getName());
41
42     /**
43      * Default constructor.
44      */

45     protected InfoglueCondition()
46     {
47         super();
48     }
49
50     /**
51      * Determines if a condition should signal pass or fail.
52      *
53      * @param transientVars the transient variables of the current execution context.
54      * @param args the arguments of the function.
55      * @param ps the propertyset associated with the current workflow.
56      * @return true if the condition passes; false otherwise.
57      * @throws WorkflowException if an error (such as missing required argument) occurs while evaluating the condition.
58      */

59     public final boolean passesCondition(final Map JavaDoc transientVars, final Map JavaDoc args, final PropertySet ps) throws WorkflowException
60     {
61         boolean result = false;
62         try
63         {
64             storeContext(transientVars, args, ps);
65             logger.debug(getClass().getName() + ".passesCondition()--------- START");
66             initialize();
67             result = passesCondition();
68             logger.debug(getClass().getName() + ".passesCondition()--------- STOP (" + result + ")");
69         }
70         catch(Exception JavaDoc e)
71         {
72             throwException(e);
73         }
74         return result;
75     }
76     
77     /**
78      * Determines if a condition should signal pass or fail.
79      *
80      * @return true if the condition passes; false otherwise.
81      * @throws WorkflowException if an error (such as missing required argument) occurs while evaluating the condition.
82      */

83     protected abstract boolean passesCondition() throws WorkflowException;
84 }
85
Popular Tags