Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: domain/VolatileProcess.java


1   /*
2    * This file is part of the WfMCore/WfMOpen project.
3    * Copyright (C) 2001-2003 Danet GmbH (www.danet.de), GS-AN.
4    * All rights reserved.
5    *
6    * This program is free software; you can redistribute it and/or modify
7    * it under the terms of the GNU General Public License as published by
8    * the Free Software Foundation; either version 2 of the License, or
9    * (at your option) any later version.
10   *
11   * This program is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   * GNU General Public License for more details.
15   *
16   * You should have received a copy of the GNU General Public License
17   * along with this program; if not, write to the Free Software
18   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19   *
20   * $Id: VolatileProcess.java,v 1.38 2003/09/24 15:19:09 lipp Exp $
21   *
22   * $Log: VolatileProcess.java,v $
23   * Revision 1.38  2003/09/24 15:19:09  lipp
24   * Updated to interface changes.
25   *
26   * Revision 1.37  2003/09/22 12:56:53  lipp
27   * Fixed key creation for block activity (must be unique).
28   *
29   * Revision 1.36  2003/09/21 21:28:14  lipp
30   * Introducing "virtual" block activity.
31   *
32   * Revision 1.35  2003/06/27 09:44:13  lipp
33   * Fixed copyright/license information.
34   *
35   * Revision 1.34  2003/05/31 20:05:25  lipp
36   * Added support for different condition types.
37   *
38   * Revision 1.33  2003/05/16 08:08:49  lipp
39   * Handling OTHERWISE condition type.
40   *
41   * Revision 1.32  2003/05/14 13:05:06  lipp
42   * Made creator of subprocess inherited attribute.
43   *
44   * Revision 1.31  2003/05/08 08:14:17  lipp
45   * Adapted to changes.
46   *
47   * Revision 1.30  2003/05/05 14:39:50  lipp
48   * Moved code for removing process automatically to event handling.
49   *
50   * Revision 1.29  2003/05/05 07:04:51  lipp
51   * Handling parameters for sub-flow now.
52   *
53   * Revision 1.28  2003/04/26 16:12:35  lipp
54   * Moved some classes to reduce package dependencies.
55   *
56   * Revision 1.27  2003/04/19 18:33:28  lipp
57   * Improved handling of info.
58   *
59   * Revision 1.26  2003/02/03 10:09:27  lipp
60   * Adapted to latest changes in src.
61   *
62   * Revision 1.25  2002/11/26 11:23:29  lipp
63   * Modified RemoteException comment.
64   *
65   * Revision 1.24  2002/11/25 21:16:23  lipp
66   * Adapted to transition interface changes.
67   *
68   * Revision 1.23  2002/11/15 15:13:54  lipp
69   * Clarified usage of transitions as attribute. Included in caching.
70   *
71   * Revision 1.22  2002/11/04 08:40:25  barzik
72   * adapted to several modifications in the workflow component
73   *
74   * Revision 1.21  2002/10/21 19:08:05  lipp
75   * Continuing implementation of new state handling.
76   *
77   * Revision 1.20  2002/10/21 11:54:23  lipp
78   * Better suspend state handling.
79   *
80   * Revision 1.19  2002/10/18 13:46:02  lipp
81   * Getting on with adaptions...
82   *
83   * Revision 1.18  2002/10/09 14:27:33  lipp
84   * Intermediate, compilable state.
85   *
86   * Revision 1.17  2002/10/09 07:30:29  lipp
87   * log fire events as debug.
88   *
89   * Revision 1.16  2002/10/08 15:32:39  lipp
90   * Providing base implementations for more methods in AbstractActivity.
91   *
92   * Revision 1.15  2002/10/02 21:23:25  lipp
93   * Some adaptations.
94   *
95   * Revision 1.14  2002/09/17 06:53:17  huaiyang
96   * Do not use super.init(null).
97   *
98   * Revision 1.13  2002/08/30 11:38:51  lipp
99   * Added create time as process method.
100  *
101  * Revision 1.12  2002/08/30 09:06:40  lipp
102  * Renamed internal state to typed state and use polymorphism for type
103  * names where possible.
104  *
105  * Revision 1.11  2002/08/30 07:58:19  huaiyang
106  * Separation of Domain class and persistent class more cleaner.
107  *
108  * Revision 1.10  2002/08/29 20:55:34  lipp
109  * Added last state time persistence and process create time.
110  *
111  * Revision 1.9  2002/08/29 14:33:17  huaiyang
112  * Use createTransitionRef.
113  *
114  * Revision 1.8  2002/08/29 11:00:45  huaiyang
115  * Move operation methods towards domain for new style of procDefSpec.
116  *
117  * Revision 1.7  2002/08/28 15:04:34  huaiyang
118  * New methods in AbstractProcess.
119  *
120  * Revision 1.6  2002/08/28 12:58:03  lipp
121  * Fixed unittests.
122  *
123  * Revision 1.5  2002/08/28 12:47:20  lipp
124  * Starting new process generation.
125  *
126  * Revision 1.4  2002/08/28 09:54:51  lipp
127  * Moving domain logic to domain package...
128  *
129  * Revision 1.3  2002/08/27 11:36:37  lipp
130  * Better use of ProcessDefinition.
131  *
132  * Revision 1.2  2002/08/25 20:55:54  lipp
133  * Clearing up use of ProcessDefinition.
134  *
135  * Revision 1.1  2002/08/22 15:19:34  lipp
136  * Redesign of EJB persistence.
137  *
138  */
139 package domain;
140 
141 import java.io.Serializable;
142 
143 import java.util.ArrayList;
144 import java.util.Collection;
145 import java.util.Date;
146 import java.util.HashMap;
147 import java.util.List;
148 import java.util.Map;
149 
150 import java.rmi.RemoteException;
151 import java.security.Principal;
152 
153 import org.jdom.Element;
154 
155 import de.danet.an.workflow.omgcore.CannotChangeRequesterException;
156 import de.danet.an.workflow.omgcore.InvalidPerformerException;
157 import de.danet.an.workflow.omgcore.ProcessData;
158 import de.danet.an.workflow.omgcore.WfActivity;
159 import de.danet.an.workflow.omgcore.WfAuditEvent;
160 import de.danet.an.workflow.omgcore.WfProcess;
161 import de.danet.an.workflow.omgcore.WfProcessMgr;
162 import de.danet.an.workflow.omgcore.WfRequester;
163 
164 import de.danet.an.workflow.api.Activity;
165 import de.danet.an.workflow.api.Activity.JoinAndSplitMode;
166 import de.danet.an.workflow.api.InvalidKeyException;
167 import de.danet.an.workflow.api.Process;
168 import de.danet.an.workflow.api.ProcessDefinition;
169 import de.danet.an.workflow.api.ProcessDefinitionDirectory;
170 import de.danet.an.workflow.api.Transition;
171 
172 import de.danet.an.workflow.domain.AbstractProcess;
173 import de.danet.an.workflow.domain.TransitionDefinition;
174 
175 import de.danet.an.workflow.apix.ExtActivity;
176 
177 /**
178  * This class implements the persistance layer required by
179  * <code>AbstractProcess</code> by, well, providing no
180  * persistence ...
181  *
182  * @author <a href="mailto:lipp@danet.de"></a>
183  * @version $Revision: 1.38 $
184  */
185 
186 public class VolatileProcess extends AbstractProcess {
187     /** Persistent attribute <code>id</code>. */
188     private String paId;
189     
190     /** Persistent attribute <code>key</code>. */
191     private String paKey;
192 
193     /** Persistent attribute <code>name</code>. */
194     private String paName;
195 
196     /** Persistent attribute <code>createTime</code>. */
197     private Date paCreateTime = new Date();
198 
199     /** Persistent attribute <code>description</code>. */
200     private String paDescription;
201 
202     /** Persistent attribute <code>priority</code>. */
203     private Priority paPriority = Priority.NORMAL;
204 
205     /** Persistent attribute <code>typedState</code>. */
206     private State paTypedState;
207 
208     /** Persistent attribute <code>lastStateTime</code>. */
209     private Date paLastStateTime;
210 
211     /** Persistent attribute <code>processMgr</code>. */
212     private String paProcessMgr;
213 
214     /** Persistent attribute <code>requester</code>. */
215     private WfRequester paRequester;
216 
217     /** Persistent attribute <code>processDef</code>. */
218     private ProcessDefinition paProcessDef;
219 
220     /** Persistent attribute <code>processData</code>. */
221     private ProcessData paProcessData;
222     
223     /** Persistent attribute <code>processMgrName</code>. */
224     private String paProcessMgrName;
225 
226     /** Persistent attribute <code>processMgrVersion</code>. */
227     private String paProcessMgrVersion;
228 
229     // normal attributes
230     private Collection activities = new ArrayList();
231     private WfProcessMgr pmgr = new VolatileMgr ();
232 
233     private static int procKeyGen = 1;
234 
235     private List transitions = new ArrayList();
236 
237     /**
238      * Creates an instance of <code>TestProcess</code>
239      * with all attributes initialized to default values.
240      * @param key a <code>String</code> value
241      */
242     public VolatileProcess (String key) {
243   setPaLastStateTime (new Date());
244   setPaPriority (Priority.NORMAL);
245   setPaTypedState (NotRunningState.NOT_STARTED);
246   paKey = key;  
247     }
248 
249     /**
250      * Creates an instance of <code>TestProcess</code>
251      * with all attributes initialized to default values.
252      */
253     public VolatileProcess () {
254   this (Integer.toString(procKeyGen++));
255     }
256 
257     /**
258      * Describe <code>thisRemote</code> method here.
259      *
260      * @return a <code>Process</code> value
261      */
262     protected Process thisRemote () {
263   return this;
264     }
265 
266     /**
267      * Remove this process.
268      */
269     protected void removeThis () {
270     }
271 
272     /**
273      * Returns the process manager which created this process.
274      * @return the associated process manager.
275      * @throws RemoteException if a system-level error occurs.
276      */
277     public WfProcessMgr manager () throws RemoteException {
278   return pmgr;
279     }
280 
281     //
282     // Implement abstract methods as unsupported
283     //
284 
285     /**
286      * Describe <code>createTime</code> method here.
287      *
288      * @return a <code>Date</code> value
289      */
290     public Date createTime () {
291   return getPaCreateTime();
292     }
293 
294     /**
295      * Return the creator of the process.
296      * @return the process creator.
297      */
298     public Principal processCreator() {
299   return null;
300     }
301 
302     /**
303      * Describe <code>setActivities</code> method here.
304      *
305      * @param act a <code>Collection</code> value
306      */
307     public void setActivities(Collection act) {
308   activities = act;
309     }
310 
311     /**
312      * Describe <code>addActivity</code> method here.
313      *
314      * @param act an <code>Activity</code> value
315      */
316     public void addActivity(Activity act) {
317   activities.add(act);
318     }
319 
320     /**
321      * Describe <code>addTransition</code> method here.
322      *
323      * @param id a <code>String</code> value
324      * @param from an <code>Activity</code> value
325      * @param to an <code>Activity</code> value
326      */
327     public void addTransition(String id, String group, int order, 
328             Activity from, Activity to) {
329   addTransition(id, group, order, from, to, null);
330     }
331 
332     /**
333      * Describe <code>addTransition</code> method here.
334      *
335      * @param id a <code>String</code> value
336      * @param from an <code>Activity</code> value
337      * @param to an <code>Activity</code> value
338      * @param cond condition.
339      */
340     public void addTransition(String id, String group, int order, 
341             Activity from, Activity to, String cond) {
342   doCreateTransition(id, group, order, from, to, 
343          Transition.COND_TYPE_CONDITION, cond);
344     }
345 
346     /**
347      * Gets a list of transitions for this process.
348      * The method is public, because the transition manager needs
349      * access to the transitions of a process.
350      * @return list of transitions for this process
351      * @throws RemoteException if a system-level error occurs.
352      */
353     public List transitions() throws RemoteException {
354   return transitions;
355     }
356 
357     /**
358      * Provide a new unique activity key.
359      *
360      * @return the key.
361      */
362     protected Long createActivityKey () {
363   throw new UnsupportedOperationException ();
364     }
365 
366     /**
367      * Describe <code>createActivity</code> method here.
368      *
369      * @param actElement an <code>Element</code> value
370      * @param jm a <code>JoinAndSplitMode</code> value
371      * @param sm a <code>JoinAndSplitMode</code> value
372      * @return a <code>WfActivity</code> value
373      */
374     protected WfActivity createActivity 
375   (Element actElement, Long blockId, 
376    JoinAndSplitMode jm, JoinAndSplitMode sm) {
377   throw new UnsupportedOperationException();
378     }
379 
380     /**
381      * Describe <code>requester</code> method here.
382      *
383      * @return a <code>WfRequester</code> value
384      * @exception RemoteException if an error occurs
385      */
386     public WfRequester requester() throws RemoteException {
387   return new WfRequester () {
388     public Collection performers() throws RemoteException {
389         throw new UnsupportedOperationException();
390     }
391     public boolean isMemberOfPerformers(WfProcess member) 
392         throws RemoteException {
393         throw new UnsupportedOperationException();
394     }
395     public void receiveEvent (WfAuditEvent e)
396         throws InvalidPerformerException, RemoteException {
397         throw new UnsupportedOperationException();
398     }
399       };
400     }
401 
402     /**
403      * Return the process definition directory.
404      * While there is no immediate relation between a process
405      * instance and the known process definitions, the definitions
406      * nevertheless make up part of the environment of a process.
407      * Specifically, this method is needed to start a sub-process
408      * in an activity.
409      * @return the process definition directory
410      * @throws RemoteException if a system level error occurs.
411      */
412     public ProcessDefinitionDirectory processDefinitionDirectory () {
413   throw new UnsupportedOperationException();
414     }
415 
416     /**
417      * Describe <code>getXPDL</code> method here.
418      *
419      * @return a <code>String</code> value
420      */
421     public String getXPDL() {
422   throw new UnsupportedOperationException();
423     }
424 
425     /**
426      * Describe <code>steps</code> method here.
427      *
428      * @return a <code>Collection</code> value
429      */
430     public Collection steps() {
431   return activities;
432     }
433 
434     /**
435      * Describe <code>processDefinition</code> method here.
436      *
437      * @return a <code>ProcessDefinition</code> value
438      * @exception RemoteException if an error occurs
439      */
440     public ProcessDefinition processDefinition() throws RemoteException {
441   throw new UnsupportedOperationException();
442     }
443 
444     /**
445      * Returns <code>true</code> if the process will be removed automatically
446      * on completion.
447      */
448     public boolean removeOnClose () throws RemoteException {
449   return false;
450     }
451 
452     /**
453      * Describe <code>history</code> method here.
454      *
455      * @return a <code>Collection</code> value
456      * @exception RemoteException if an error occurs
457      */
458     public Collection history() throws RemoteException {
459   throw new UnsupportedOperationException();
460     }
461 
462     /**
463      * Describe <code>setRequester</code> method here.
464      *
465      * @param requester a <code>WfRequester</code> value
466      * @exception RemoteException if an error occurs
467      * @exception CannotChangeRequesterException if an error occurs
468      */
469     public void  setRequester(WfRequester requester)
470   throws RemoteException,
471          CannotChangeRequesterException {
472   throw new UnsupportedOperationException();
473     }
474 
475     /**
476      * Describe <code>activityByKey</code> method here.
477      *
478      * @param key a <code>String</code> value
479      * @return an <code>Activity</code> value
480      * @exception RemoteException if an error occurs
481      * @exception InvalidKeyException if an error occurs
482      */
483     public Activity activityByKey (String key) throws 
484   RemoteException, InvalidKeyException {
485   throw new UnsupportedOperationException();
486     }
487 
488     /**
489      * Return an arbitrary activity with the given key. The activity
490      * need not belong to this process.
491      * @param key activity key
492      * @return the activity
493      * @throws InvalidKeyException if the activity cannot be found
494      */
495     protected ExtActivity lookupActivity (String key)
496   throws InvalidKeyException {
497   throw new UnsupportedOperationException();
498     }
499 
500     /**
501      * Describe <code>processContext</code> method here.
502      *
503      * @return a <code>ProcessData</code> value
504      * @exception RemoteException if an error occurs
505      */
506     public ProcessData processContext () throws RemoteException {
507   throw new UnsupportedOperationException();
508     }
509 
510     /**
511      * Describe <code>complete</code> method here.
512      *
513      * @param activity a <code>Long</code> value
514      * @param s a <code>State</code> value
515      */
516     public void complete (Long activity, State s) {
517   throw new UnsupportedOperationException();
518     }
519 
520     /**
521      * Describe <code>createTransitionRef</code> method here.
522      *
523      * @param serialNum a <code>long</code> value
524      * @param fromActivity an <code>Activity</code> value
525      * @param toActivity an <code>Activity</code> value
526      */
527     protected void createTransitionRef 
528   (long serialNum, Activity fromActivity, Activity toActivity) {
529   throw new UnsupportedOperationException();
530     }
531     
532     /**
533      * Create a new transition with given id, From Activity, To Activity.
534      * @param id a <code>String</code> value
535      * @param fromAct an <code>Activity</code> value
536      * @param toAct an <code>Activity</code> value
537      * @return the created transition.
538      */
539     protected Transition createTransition
540   (String id, String group, int order, Activity fromAct, 
541    Activity toAct) {
542   return doCreateTransition (id,group,order,fromAct,toAct,
543            Transition.COND_TYPE_CONDITION,null);
544     }
545 
546     /**
547      * Create a new transition with given id, From Activity, To Activity.
548      * @param id a <code>String</code> value
549      * @param fromAct an <code>Activity</code> value
550      * @param toAct an <code>Activity</code> value
551      * @param cond condition.
552      * @return the created transition.
553      */
554     protected Transition doCreateTransition
555   (String id, String group, int order, Activity fromAct, 
556    Activity toAct, int condType, String cond) {
557   Transition trans = new TransitionDefinition
558       (paKey,id,group,order,fromAct,toAct,condType,cond);
559   transitions.add(trans);
560   return trans;
561     }
562 
563     /**
564      * Describe <code>activityRequesterInfo</code> method here.
565      *
566      * @param req a <code>WfRequester</code> value
567      * @return a <code>WfAuditEvent</code> value
568      */
569     protected WfAuditEvent activityRequesterInfo(WfRequester req) {
570   throw new UnsupportedOperationException();
571     }
572 
573     /**
574      * Returns an audit event object with process relevant information
575      * initialized.
576      * @return the process related information.
577      */
578     public WfAuditEvent auditEventBase() {
579   return auditEventBase(null);
580     }
581 
582     /**
583      * Start a timer that will call <code>handleTimeout</code> at the
584      * given date with the given info.
585      * @param due target date
586      * @param info the context
587      */
588     public void startTimer (Date due, Serializable info) {
589     }
590 
591     /**
592      * Stop all timers that this object has created.
593      */
594     public void stopTimers () {
595     }
596 
597     //
598     // Implement accessor methods for the persistent attributes
599     //
600 
601     /**
602      * The getter method implementation for the persistent 
603      * attribute <code>key</code>.
604      *
605      * @return the value of key.
606      */
607     protected String getPaKey() {
608   return paKey;
609     }
610 
611     /**
612      * The getter method implementation for the persistent 
613      * attribute <code>name</code>.
614      *
615      * @return the value of name.
616      * @see #setPaName
617      */
618     protected String getPaName() {
619   return paName;
620     }
621 
622     /**
623      * The setter method implementation for the persistent 
624      * attribute <code>name</code>.
625      *
626      * @param newName the new value of name.
627      * @see #getPaName
628      */
629     protected void setPaName(String newName) {
630   paName = newName;
631     }
632 
633     /**
634      * The getter method implementation for the persistent 
635      * attribute <code>description</code>.
636      *
637      * @return the value of description.
638      * @see #setPaDescription
639      */
640     protected String getPaDescription() {
641   return paDescription;
642     }
643 
644     /**
645      * The setter method implementation for the persistent 
646      * attribute <code>description</code>.
647      *
648      * @param newDescription the new value of description.
649      * @see #getPaDescription
650      */
651     protected void setPaDescription(String newDescription) {
652   paDescription = newDescription;
653     }
654 
655     /**
656      * The getter method implementation for the persistent 
657      * attribute <code>priority</code>.
658      *
659      * @return the value of priority.
660      * @see #setPaPriority
661      */
662     protected Priority getPaPriority() {
663   return paPriority;
664     }
665 
666     /**
667      * The setter method implementation for the persistent 
668      * attribute <code>priority</code>.
669      *
670      * @param newPriority the new value of priority.
671      * @see #getPaPriority
672      */
673     protected void setPaPriority(Priority newPriority) {
674   paPriority = newPriority;
675     }
676 
677     /**
678      * The getter method implementation for the persistent 
679      * attribute <code>typedState</code>.
680      *
681      * @return the value of typedState.
682      * @see #setPaTypedState
683      */
684     protected State getPaTypedState() {
685   return paTypedState;
686     }
687 
688     /**
689      * The getter method implementation for the persistent 
690      * attribute <code>lastStateTime</code>.
691      *
692      * @return the value of lastStateTime.
693      * @see #setPaLastStateTime
694      */
695     protected Date getPaLastStateTime() {
696   return paLastStateTime;
697     }
698 
699     /**
700      * The setter method implementation for the persistent 
701      * attribute <code>lastStateTime</code>.
702      *
703      * @param newLastStateTime the new value of lastStateTime.
704      * @see #getPaLastStateTime
705      */
706     protected void setPaLastStateTime(Date newLastStateTime) {
707   paLastStateTime = newLastStateTime;
708     }
709 
710     /**
711      * The setter method implementation for the persistent 
712      * attribute <code>typedState</code>.
713      *
714      * @param newTypedState the new value of typedState.
715      * @see #getPaTypedState
716      */
717     protected void setPaTypedState(State newTypedState) {
718   paTypedState = newTypedState;
719     }
720 
721     /**
722      * The getter method implementation for the persistent 
723      * attribute <code>processMgr</code>.
724      *
725      * @return the value of processMgr.
726      * @see #setPaProcessMgr
727      */
728     protected String getPaProcessMgr() {
729   return paProcessMgr;
730     }
731 
732     /**
733      * The setter method implementation for the persistent 
734      * attribute <code>processMgr</code>.
735      *
736      * @param newProcessMgr the new value of processMgr.
737      * @see #getPaProcessMgr
738      */
739     protected void setPaProcessMgr(String newProcessMgr) {
740   paProcessMgr = newProcessMgr;
741     }
742 
743     /**
744      * The getter method implementation for the persistent 
745      * attribute <code>requester</code>.
746      *
747      * @return the value of requester.
748      * @see #setPaRequester
749      */
750     protected WfRequester getPaRequester() {
751   return paRequester;
752     }
753 
754     /**
755      * The setter method implementation for the persistent 
756      * attribute <code>requester</code>.
757      *
758      * @param newRequester the new value of requester.
759      * @see #getPaRequester
760      */
761     protected void setPaRequester(WfRequester newRequester) {
762   paRequester = newRequester;
763     }
764 
765     /**
766      * The getter method implementation for the persistent 
767      * attribute <code>processDef</code>.
768      *
769      * @return the value of processDef.
770      * @see #setPaProcessDef
771      */
772     protected ProcessDefinition getPaProcessDef() {
773   return paProcessDef;
774     }
775 
776     /**
777      * The setter method implementation for the persistent 
778      * attribute <code>processDef</code>.
779      *
780      * @param newProcessDef the new value of processDef.
781      * @see #getPaProcessDef
782      */
783     protected void setPaProcessDef(ProcessDefinition newProcessDef) {
784   paProcessDef = newProcessDef;
785     }
786     
787     /**
788      * The getter method implementation for the persistent 
789      * attribute <code>processData</code>.
790      *
791      * @return the value of processData.
792      * @see #setPaProcessData
793      */
794     protected ProcessData getPaProcessData() {
795   return paProcessData;
796     }
797 
798     /**
799      * The setter method implementation for the persistent 
800      * attribute <code>processData</code>.
801      *
802      * @param newProcessData the new value of processData.
803      * @see #getPaProcessData
804      */
805     protected void setPaProcessData(ProcessData newProcessData) {
806   paProcessData = newProcessData;
807     }
808 
809     /**
810      * The getter method implementation for the persistent 
811      * attribute <code>processMgrName</code>.
812      *
813      * @return the value of processMgrName.
814      * @see #setPaProcessMgrName
815      */
816     protected String getPaProcessMgrName() {
817   return paProcessMgrName;
818     }
819 
820     /**
821      * The setter method implementation for the persistent 
822      * attribute <code>processMgrName</code>.
823      *
824      * @param newProcessMgrName the new value of processMgrName.
825      * @see #getPaProcessMgrName
826      */
827     protected void setPaProcessMgrName(String newProcessMgrName) {
828   paProcessMgrName = newProcessMgrName;
829     }
830 
831     /**
832      * The getter method implementation for the persistent 
833      * attribute <code>processMgrVersion</code>.
834      *
835      * @see #setPaProcessMgrVersion
836      * @return the value of processMgrVersion.
837      */
838     protected String getPaProcessMgrVersion() {
839   return paProcessMgrVersion;
840     }
841 
842     /**
843      * The setter method implementation for the persistent 
844      * attribute <code>processMgrVersion</code>.
845      *
846      * @param newProcessMgrVersion the new value of processMgrVersion.
847      * @see #getPaProcessMgrVersion
848      */
849     protected void setPaProcessMgrVersion(String newProcessMgrVersion) {
850   paProcessMgrVersion = newProcessMgrVersion;
851     }
852 
853     /**
854      * The getter method for the persistent attribute <code>id</code>.
855      *
856      * @return the value of process id.
857      * @see #setPaId
858      */
859     protected String getPaId() {
860   return paId;
861     }
862 
863     /**
864      * The setter method for the persistent attribute <code>Id</code>.
865      *
866      * @param newId the new value of process id.
867      * @see #getPaId
868      */
869     protected void setPaId(String newId) {
870   paId = newId;
871     }
872 
873     /**
874      * The getter method implementation for the persistent 
875      * attribute <code>createTime</code>.
876      *
877      * @return the value of createTime.
878      * @see #setPaCreateTime
879      */
880     protected Date getPaCreateTime() {
881   return paCreateTime;
882     }
883 
884     /**
885      * The getter method implementation for the persistent 
886      * attribute <code>blockDeadlines</code>.
887      *
888      * @see #setPaBlockDeadlines
889      * @return the value of blockDeadlines.
890      */
891     protected Map getPaBlockDeadlines() {
892   return new HashMap ();
893     }
894 
895 }