Source Code Cross Referenced for ProcessDefinition.java in  » Workflow-Engines » wfmopen-2.1.1 » de » danet » an » workflow » api » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Workflow Engines » wfmopen 2.1.1 » de.danet.an.workflow.api 
Source Cross Referenced  Class Diagram Java Document (Java Doc) 


001:        /*
002:         * This file is part of the WfMOpen project.
003:         * Copyright (C) 2001-2003 Danet GmbH (www.danet.de), GS-AN.
004:         * All rights reserved.
005:         *
006:         * This program is free software; you can redistribute it and/or modify
007:         * it under the terms of the GNU General Public License as published by
008:         * the Free Software Foundation; either version 2 of the License, or
009:         * (at your option) any later version.
010:         *
011:         * This program is distributed in the hope that it will be useful,
012:         * but WITHOUT ANY WARRANTY; without even the implied warranty of
013:         * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
014:         * GNU General Public License for more details.
015:         *
016:         * You should have received a copy of the GNU General Public License
017:         * along with this program; if not, write to the Free Software
018:         * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
019:         * 
020:         * $Id: ProcessDefinition.java,v 1.5 2007/02/27 14:34:20 drmlipp Exp $
021:         *
022:         * $Log: ProcessDefinition.java,v $
023:         * Revision 1.5  2007/02/27 14:34:20  drmlipp
024:         * Some refactoring to reduce cyclic dependencies.
025:         *
026:         * Revision 1.4  2006/09/29 12:32:07  drmlipp
027:         * Consistently using WfMOpen as projct name now.
028:         *
029:         * Revision 1.3  2006/03/08 14:46:44  drmlipp
030:         * Synchronized with 1.3.3p5.
031:         *
032:         * Revision 1.2  2005/04/22 15:10:50  drmlipp
033:         * Merged changes from 1.3 branch up to 1.3p15.
034:         *
035:         * Revision 1.1.1.2.6.3  2005/04/16 21:18:29  drmlipp
036:         * Made audit event filtering more flexible and added possibility to turn
037:         * off audit log.
038:         *
039:         * Revision 1.1.1.2.6.2  2005/04/15 21:07:38  drmlipp
040:         * Added "storeAuditEvents" flag.
041:         *
042:         * Revision 1.1.1.2.6.1  2005/04/14 15:08:49  drmlipp
043:         * Added "filterable" event auditing.
044:         *
045:         * Revision 1.1.1.2  2004/08/18 15:17:36  drmlipp
046:         * Update to 1.2
047:         *
048:         * Revision 1.27  2004/04/28 14:19:20  lipp
049:         * Getting started with SAX based process creation.
050:         *
051:         * Revision 1.26  2003/06/27 08:51:46  lipp
052:         * Fixed copyright/license information.
053:         *
054:         * Revision 1.25  2003/05/09 10:39:05  huaiyang
055:         * interface for redefinable header in process added.
056:         *
057:         * Revision 1.24  2003/05/06 13:54:41  lipp
058:         * Fixed null pointer exception.
059:         *
060:         * Revision 1.23  2003/05/06 13:21:29  lipp
061:         * Resolved cyclic dependency.
062:         *
063:         * Revision 1.22  2003/05/05 07:04:51  lipp
064:         * Handling parameters for sub-flow now.
065:         *
066:         * Revision 1.21  2003/04/25 14:50:59  lipp
067:         * Fixed javadoc errors and warnings.
068:         *
069:         * Revision 1.20  2003/04/23 14:27:35  lipp
070:         * Improved modelling of header data.
071:         *
072:         * Revision 1.19  2003/04/19 18:33:29  lipp
073:         * Improved handling of info.
074:         *
075:         * Revision 1.18  2003/04/08 11:49:04  lipp
076:         * ResultSignature implemented.
077:         *
078:         * Revision 1.17  2003/03/04 13:46:09  lipp
079:         * Renamed processCOntext to contextSignature for ProcessDefinition.
080:         *
081:         * Revision 1.16  2003/03/03 15:31:50  lipp
082:         * Updated implementation of time estimation.
083:         *
084:         * Revision 1.15  2003/03/03 13:23:07  schlue
085:         * IPR9 (comment for mgrName added)
086:         *
087:         * Revision 1.14  2002/12/19 21:37:43  lipp
088:         * Reorganized interfaces.
089:         *
090:         * Revision 1.13  2002/11/06 12:13:48  huaiyang
091:         * Add the method of RemoveClosedProcess.
092:         *
093:         * Revision 1.12  2002/11/04 14:34:46  huaiyang
094:         * Add the method of processContext.
095:         *
096:         * Revision 1.11  2002/09/19 09:44:01  lipp
097:         * checkstyle fixes.
098:         *
099:         * Revision 1.10  2002/09/18 11:42:21  lipp
100:         * Moved participant data access to process definition.
101:         *
102:         * Revision 1.9  2002/09/17 15:24:24  lipp
103:         * Renamed Tool to Application and copied some functionality to
104:         * ProcessDefintion.
105:         *
106:         * Revision 1.8  2002/09/08 18:49:17  lipp
107:         * Proper use of packageId and processId.
108:         *
109:         * Revision 1.7  2002/09/04 15:14:33  lipp
110:         * Removed dubious use of id as process definition identifier.
111:         *
112:         * Revision 1.6  2002/08/27 11:36:37  lipp
113:         * Better use of ProcessDefinition.
114:         *
115:         * Revision 1.5  2002/08/26 20:23:13  lipp
116:         * Lots of method renames.
117:         *
118:         * Revision 1.4  2002/08/25 20:55:54  lipp
119:         * Clearing up use of ProcessDefinition.
120:         *
121:         * Revision 1.3  2002/08/20 11:54:32  lipp
122:         * Cleaned up usage of XPDL and JDOM representation of processes and
123:         * process definitions.
124:         *
125:         * Revision 1.2  2002/08/01 10:13:17  huaiyang
126:         * Use JDOM instead of DOM now.
127:         *
128:         * Revision 1.1  2002/01/17 16:45:06  lipp
129:         * ProcessDefinition moved to workflow.api.
130:         *
131:         */
132:        package de.danet.an.workflow.api;
133:
134:        import java.util.Collection;
135:        import java.util.List;
136:
137:        import org.jdom.Document;
138:
139:        import de.danet.an.workflow.omgcore.ProcessDataInfo;
140:
141:        /**
142:         * This interface defines a process definiton.
143:         */
144:        public interface ProcessDefinition {
145:
146:            /** Select all audit events to be delivered and recorded. */
147:            public static final int AUDIT_SELECTION_ALL_EVENTS = 0;
148:
149:            /** Select state change events for delivery and recording only. */
150:            public static final int AUDIT_SELECTION_STATE_EVENTS_ONLY = 1;
151:
152:            /** Select process closed events for delivery and recording only. */
153:            public static final int AUDIT_SELECTION_PROCESS_CLOSED_EVENTS_ONLY = 2;
154:
155:            /** Select no audit events to be delivered and recorded. */
156:            public static final int AUDIT_SELECTION_NO_EVENTS = 3;
157:
158:            /** Remove closed processes manually. */
159:            public static final int REMOVE_MANUAL = 0;
160:
161:            /** Remove closed processes automatically. */
162:            public static final int REMOVE_AUTOMATIC = 1;
163:
164:            /** Remove closed processes automatically if 
165:             * <code>closed.completed</code>. */
166:            public static final int REMOVE_COMPLETED = 2;
167:
168:            /**
169:             * An interface providing the information from the package
170:             * definition header section.
171:             */
172:            public static interface PackageHeaderData {
173:                /**
174:                 * Version of the process definition specification.
175:                 * @return the version.
176:                 */
177:                String xpdlVersion();
178:
179:                /**
180:                 * Defines the origin of this model definition 
181:                 * and contains vendor's name, vendor's product name
182:                 * and product's release number.
183:                 * @return the vendor.
184:                 */
185:                String vendor();
186:
187:                /**
188:                 * Creation date of package definition.
189:                 * @return the created time.
190:                 */
191:                String created();
192:
193:                /**
194:                 * Short description of the package definition.
195:                 * @return the description.
196:                 */
197:                String description();
198:
199:                /**
200:                 * Operating system specific path and -filename 
201:                 * of help file/description file.
202:                 * @return the documentation.
203:                 */
204:                String documentation();
205:
206:                /**
207:                 * Units used in simulation data.
208:                 * @return the priority unit.
209:                 */
210:                String priorityUnit();
211:
212:                /**
213:                 * Units used in simulation data.
214:                 * @return the cost unit.
215:                 */
216:                String costUnit();
217:            }
218:
219:            /**
220:             * An interface providing the information from the process
221:             * definition header section.
222:             */
223:            public static interface ProcessHeaderData {
224:                /**
225:                 * Dreation date of the process definition.
226:                 * @return the created information.
227:                 */
228:                String created();
229:
230:                /**
231:                 * Short description of the process definition.
232:                 * @return the description.
233:                 */
234:                String description();
235:
236:                /**
237:                 * Priority of the process type.
238:                 * @return the priority.
239:                 */
240:                String priority();
241:
242:                /**
243:                 * Expected duration for time management purposes in units
244:                 * of duration unit (duration unit does not present in this class).
245:                 * @return the limit.
246:                 */
247:                String limit();
248:
249:                /**
250:                 * Date that the workflow process definition is active from.
251:                 * @return the valid from date.
252:                 */
253:                String validFrom();
254:
255:                /**
256:                 * Date at witch the process definition becomes valid.
257:                 * @return the valid to date.
258:                 */
259:                String validTo();
260:
261:                /**
262:                 * Describes the amount of time the performer of the activity
263:                 * needs to perform the task.
264:                 * @return the estimated time.
265:                 */
266:                String timeEstimationWaiting();
267:
268:                /**
269:                 * Describes the amount of time the performer of the activity
270:                 * needs to perform the task.
271:                 * @return the estimated time.
272:                 */
273:                String timeEstimationWorking();
274:
275:                /**
276:                 * Describes the amount of time the performer of the activity
277:                 * needs to perform the task.
278:                 * @return the estimated time.
279:                 */
280:                String timeEstimationDuration();
281:
282:                /**
283:                 * Name of the author of this workflow process definition.
284:                 * @return the author.
285:                 */
286:                String author();
287:
288:                /**
289:                 * Describes the version of this workflow process definition.
290:                 * @return the version.
291:                 */
292:                String version();
293:
294:                /**
295:                 * Describes the codepage used for the text parts.
296:                 * @return the codepage.
297:                 */
298:                String codepage();
299:
300:                /**
301:                 * Describes the country code based on ISO 3166. It could
302:                 * be either the three digits country code number, or the
303:                 * two alpha characters country codes.
304:                 * @return the country code.
305:                 */
306:                String countrykey();
307:
308:                /**
309:                 * Describes the status of the Workflow Process Definition.
310:                 * @return the status.
311:                 */
312:                String publicationStatus();
313:
314:                /**
315:                 * Describes the responsible Workflow participant(s). It is assumed
316:                 * that the responsible is the supervisor during the execution 
317:                 * of the process.
318:                 * @return the list of responsible Workflow participant in String.
319:                 */
320:                List responsibles();
321:
322:                /**
323:                 * The elements of package header.
324:                 * @return the package header.
325:                 */
326:                PackageHeaderData packageHeader();
327:            }
328:
329:            /**
330:             * Id of the package as specified in the XPDL description.
331:             *
332:             * @return package id.
333:             */
334:            String packageId();
335:
336:            /**
337:             * Id of the process as specified in the XPDL description.
338:             *
339:             * @return process id.
340:             */
341:            String processId();
342:
343:            /**
344:             * Version of the process definition as specified in the XPDL
345:             * description.
346:             *
347:             * @return process defintion version.
348:             */
349:            String version();
350:
351:            /**
352:             * Name of the package as specified in the XPDL description.
353:             *
354:             * @return package name.
355:             */
356:            String packageName();
357:
358:            /**
359:             * Name of the process as specified in the XPDL description.
360:             *
361:             * @return process name.
362:             */
363:            String processName();
364:
365:            /**
366:             * Returns the meta information that defines how to set the
367:             * context for this kind of process. Equivalent to calling {@link
368:             * de.danet.an.workflow.omgcore.WfProcessMgr#contextSignature
369:             * <code>contextSignature</code>} on a process manager for this
370:             * kind of process.
371:             * @return the process meta information.
372:             * @see de.danet.an.workflow.omgcore.WfProcessMgr#contextSignature
373:             */
374:            ProcessDataInfo contextSignature();
375:
376:            /**
377:             * Returns the meta information that describes the result for this
378:             * kind of process. Equivalent to calling {@link
379:             * de.danet.an.workflow.omgcore.WfProcessMgr#resultSignature
380:             * <code>resultSignature</code>} on a process manager for this
381:             * kind of process.<P>
382:             *
383:             * The implementation returns all formal IN or INOUT parameters.
384:             * 
385:             * @return the process meta information.
386:             * @see de.danet.an.workflow.omgcore.WfProcessMgr#resultSignature
387:             */
388:            ProcessDataInfo resultSignature();
389:
390:            /**
391:             * Returns the meta information that describes the formal parameters
392:             * for this kind of process.
393:             * @return the process meta information. The result is never
394:             * <code>null</code>, rather an array with zero element is returned.
395:             */
396:            FormalParameter[] formalParameters();
397:
398:            /**
399:             * The name of the associated {@link
400:             * de.danet.an.workflow.omgcore.WfProcessMgr process
401:             * manager}. While the name of a process in XPDL is just a human
402:             * readable "label", the name attribute of the process manager
403:             * must be unique within agiven business domain.<P>
404:             *
405:             * The standard implementation of <code>ProcessDefinition</code>
406:             * derives a manager name from the package and process ids in the
407:             * XPDL, separated by a slash ("/").
408:             *
409:             * @return process manager name.
410:             */
411:            String mgrName();
412:
413:            /**
414:             * Returns process header data object of the process description.
415:             * @return process header data object of the process description
416:             */
417:            ProcessHeaderData processHeader();
418:
419:            /**
420:             * Return the process definition as SAX event buffer.
421:             * @return the process definition
422:             * @since 1.2
423:             */
424:            SAXEventBuffer toSAX();
425:
426:            /**
427:             * Returns the process description as XPDL textual description.
428:             * @return the process definition
429:             */
430:            String toXPDL();
431:
432:            /**
433:             * Returns the process description as XPDL JDOM tree.
434:             * @return DOM representation of the process definition
435:             */
436:            Document toJDOM();
437:
438:            /**
439:             * Returns the applications defined in this process.
440:             * @return a collection of {@link Application <code>Application</code>s}.
441:             */
442:            Collection applications();
443:
444:            /**
445:             * Return the application with the given id.
446:             * @param id the application id.
447:             * @return the application.
448:             * @throws InvalidIdException if no application with the given id exists.
449:             */
450:            Application applicationById(String id) throws InvalidIdException;
451:
452:            /** 
453:             * Gets the participants for this process.
454:             * @return a collection of {@link Participant
455:             * <code>Participant</code>s} for this process.
456:             */
457:            Collection participants();
458:
459:            /**
460:             * Return the participant identified by the id.
461:             * @param id identity of the participant in string 
462:             * @return a Participant object
463:             * @throws InvalidIdException if no participant with the given id exists.
464:             */
465:            Participant participantById(String id) throws InvalidIdException;
466:
467:            /**
468:             * This method checks if the closed process should be removed. Parse the 
469:             * process definition and find out if the extendAttribute with the name of 
470:             * RemoveClosedProcess has the value of MANUAL, then return false; if it 
471:             * has the value of AUTOMATIC, then return true. Default is true.
472:             * @return <code>true</code> if the closed process should be
473:             * removed, otherwise false.
474:             * @deprecated Use {@link #cleanupMode <code>cleanupMode</code>}. For
475:             * backward compatibility, this method returns <code>true</code> if
476:             * <code>cleanupMode</code> returns <code>REMOVE_AUTOMATIC</code>. 
477:             */
478:            boolean removeClosedProcess();
479:
480:            /**
481:             * This method checks if a closed process should be removed. Parse the 
482:             * process definition and find out if the extendAttribute with the name of 
483:             * RemoveClosedProcess has the value of <code>MANUAL</code>, 
484:             * <code>AUTOMATIC</code> or <code>COMPLETED</code> and return the 
485:             * corresponding constant. Default is to remove automatically, i.e. 
486:             * {@link #REMOVE_AUTOMATIC <code>REMOVE_AUTOMATIC</code>}.
487:             * @return the cleanup mode.
488:             */
489:            int cleanupMode();
490:
491:            /**
492:             * This method returns the selected audit events of instances of
493:             * this process definition.
494:             * @return the filter
495:             */
496:            int auditEventSelection();
497:
498:            /**
499:             * This method reports if audit events are written to the
500:             * database.
501:             * @return <code>true</code> if only state change events of the
502:             * process instance are audited.
503:             */
504:            boolean storeAuditEvents();
505:
506:        }
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.