01: /*
02: * $Id: WfUtil.java,v 1.1 2003/08/17 09:29:33 ajzeneski Exp $
03: *
04: * Copyright (c) 2001, 2002 The Open For Business Project - www.ofbiz.org
05: *
06: * Permission is hereby granted, free of charge, to any person obtaining a
07: * copy of this software and associated documentation files (the "Software"),
08: * to deal in the Software without restriction, including without limitation
09: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
10: * and/or sell copies of the Software, and to permit persons to whom the
11: * Software is furnished to do so, subject to the following conditions:
12: *
13: * The above copyright notice and this permission notice shall be included
14: * in all copies or substantial portions of the Software.
15: *
16: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
17: * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18: * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19: * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20: * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
21: * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
22: * THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23: *
24: */
25: package org.ofbiz.workflow;
26:
27: import java.util.Map;
28:
29: import org.ofbiz.base.util.UtilMisc;
30:
31: /**
32: * WorkflowUtil - Workflow Engine Utilities
33: *
34: * @author <a href="mailto:jaz@ofbiz.org">Andy Zeneski</a>
35: * @version $Revision: 1.1 $
36: * @since 2.0
37: */
38: public final class WfUtil {
39:
40: private static final Map typeMap = UtilMisc.toMap("WDT_BOOLEAN",
41: "java.lang.Boolean", "WDT_STRING", "java.lang.String",
42: "WDT_INTEGER", "java.lang.Long", "WDT_FLOAT",
43: "java.lang.Double", "WDT_DATETIME", "java.sql.Timestamp");
44:
45: /**
46: * Gets the Java type from a XPDL datatype
47: * @param xpdlType XPDL data type to be translated
48: * @return Java Class name equivalence to the XPDL data type
49: */
50: public static final String getJavaType(String xpdlType) {
51: if (typeMap.containsKey(xpdlType))
52: return (String) typeMap.get(xpdlType);
53: else
54: return "java.lang.Object";
55: }
56:
57: /**
58: * Returns the OFB status code which refers to the passed OMG status code
59: * @param state
60: * @return String
61: */
62: public static String getOFBStatus(String state) {
63: String statesArr[] = { "open.running",
64: "open.not_running.not_started",
65: "open.not_running.suspended", "closed.completed",
66: "closed.terminated", "closed.aborted" };
67: String entityArr[] = { "WF_RUNNING", "WF_NOT_STARTED",
68: "WF_SUSPENDED", "WF_COMPLETED", "WF_TERMINATED",
69: "WF_ABORTED" };
70:
71: for (int i = 0; i < statesArr.length; i++) {
72: if (statesArr[i].equals(state))
73: return entityArr[i];
74: }
75: return null;
76: }
77:
78: /**
79: * Returns the OMG status code which refers to the passed OFB status code
80: * @param state
81: * @return String
82: */
83: public static String getOMGStatus(String state) {
84: String statesArr[] = { "open.running",
85: "open.not_running.not_started",
86: "open.not_running.suspended", "closed.completed",
87: "closed.terminated", "closed.aborted" };
88: String entityArr[] = { "WF_RUNNING", "WF_NOT_STARTED",
89: "WF_SUSPENDED", "WF_COMPLETED", "WF_TERMINATED",
90: "WF_ABORTED" };
91:
92: for (int i = 0; i < entityArr.length; i++) {
93: if (entityArr[i].equals(state))
94: return statesArr[i];
95: }
96: return null;
97: }
98:
99: }
|