KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > hero > client > samples > ProcessModel


1 /**
2  *
3  * Bonita
4  * Copyright (C) 1999 Bull S.A.
5  * Bull 68 route de versailles 78434 Louveciennes Cedex France
6  * Further information: bonita@objectweb.org
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or any later version.
12  *
13  * This library is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with this library; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
21  * USA
22  *
23  *
24 --------------------------------------------------------------------------
25  * $Id: ProcessModel.java,v 1.4 2004/11/10 17:10:50 mvaldes Exp $
26  *
27 --------------------------------------------------------------------------
28  */

29
30 package hero.client.samples;
31
32 import javax.security.auth.login.LoginContext JavaDoc;
33 import hero.client.test.SimpleCallbackHandler;
34
35 import hero.interfaces.ProjectSession;
36 import hero.interfaces.ProjectSessionHome;
37 import hero.interfaces.ProjectSessionUtil;
38
39 import hero.interfaces.Constants;
40
41 public class ProcessModel {
42     
43     static public void main(String JavaDoc[] args) throws Exception JavaDoc{
44       // Admin login
45
char[] password={'t','o','t','o'};
46       SimpleCallbackHandler handler = new SimpleCallbackHandler("admin",password);
47       LoginContext JavaDoc lc = new LoginContext JavaDoc("TestClient", handler);
48       lc.login();
49           
50       // Process Model creation by user admin
51
ProjectSessionHome lHome=ProjectSessionUtil.getHome();
52       ProjectSession lProject = lHome.create();
53       lProject.initModel("e-citizen");
54       
55       // Activities creation (traditional execution mode)
56
lProject.addNode("Subscription order",Constants.Nd.AND_JOIN_NODE);
57       lProject.setNodeTraditional("Subscription order");
58       
59       lProject.addNode("Verify order",Constants.Nd.AND_JOIN_NODE);
60       lProject.setNodeTraditional("Verify order");
61       
62       lProject.addNode("Modify order",Constants.Nd.AND_JOIN_NODE);
63       lProject.setNodeTraditional("Modify order");
64       
65       lProject.addNode("Verify changes",Constants.Nd.AND_JOIN_NODE);
66       lProject.setNodeTraditional("Verify changes");
67       
68       lProject.addNode("Card order",Constants.Nd.OR_JOIN_AUTOMATIC_NODE);
69       lProject.setNodeTraditional("Card order");
70       
71       lProject.addNode("Receive card",Constants.Nd.AND_JOIN_NODE);
72       lProject.setNodeTraditional("Receive card");
73       
74       lProject.addNode("Send card",Constants.Nd.AND_JOIN_NODE);
75       lProject.setNodeTraditional("Send card");
76       
77       
78       // Set edges between nodes
79
lProject.addEdge("Subscription order","Verify order");
80       String JavaDoc inst_mod=lProject.addEdge("Verify order","Modify order");
81       lProject.addEdge("Modify order","Verify changes");
82       String JavaDoc inst_dem=lProject.addEdge("Verify order","Card order");
83       lProject.addEdge("Verify changes","Card order");
84       lProject.addEdge("Card order","Receive card");
85       lProject.addEdge("Receive card","Send card");
86      
87       // Add iteration between Verify changes and Modify order
88
lProject.addIteration("Verify changes","Modify order","correct.equals(\"ok\")");
89      
90       // Set process properties
91
lProject.setProperty("userId","");
92       lProject.setProperty("recordId","");
93       lProject.setProperty("orderId","");
94       
95       // Set node property
96
lProject.setNodeProperty("Verify order","correct","",false);
97       
98       // Set edge conditions
99
lProject.setEdgeCondition(inst_mod,"correct.equals(\"nok\")");
100       lProject.setEdgeCondition(inst_dem,"correct.equals(\"ok\")");
101       
102       // Set node hook
103
String JavaDoc script =
104               "import hero.interfaces.BnProjectLocal;\n"
105                   + "import hero.interfaces.BnNodeLocal;\n"
106                   + "afterTerminate (Object b,Object n) {\n\n\n"
107                   + "System.out.println(\"Card order... \");"
108                   + "}";
109       lProject.addNodeInterHook("Card order","Card order",Constants.Nd.AFTERTERMINATE,Constants.Hook.BSINTERACTIVE,script);
110       
111       // Creates two process roles
112
lProject.addRole("agent","agent");
113       lProject.addRole("preCitizen","preCitizen");
114       
115       // Set role to activities
116
lProject.setNodeRole("Verify order","agent");
117       lProject.setNodeRole("Verify changes","agent");
118       lProject.setNodeRole("Receive card","agent");
119       lProject.setNodeRole("Send card","agent");
120       lProject.setNodeRole("Modify order","preCitizen");
121     }
122       
123     
124 }
125
126
127
Popular Tags