/*
* This file is part of the WfMOpen project.
* Copyright (C) 2001-2003 Danet GmbH (www.danet.de), GS-AN.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* $Id: VolatileProcess.java 3002 2009-03-13 22:20:49Z mlipp $
*
* $Log$
* Revision 1.11 2007/09/21 06:19:35 mlipp
* Fixed problem with NamingException during process deletion.
*
* Revision 1.10 2007/07/04 21:32:22 mlipp
* Using local interface whereever possible.
*
* Revision 1.9 2007/05/03 21:58:24 mlipp
* Internal refactoring for making better use of local EJBs.
*
* Revision 1.8 2007/01/25 22:59:04 mlipp
* Fixed result().
*
* Revision 1.7 2006/09/29 12:32:11 drmlipp
* Consistently using WfMOpen as projct name now.
*
* Revision 1.6 2006/03/08 14:46:43 drmlipp
* Synchronized with 1.3.3p5.
*
* Revision 1.5 2005/10/10 20:02:12 mlipp
* Synchronized with 1.3.3.
*
* Revision 1.4 2005/04/22 15:11:06 drmlipp
* Merged changes from 1.3 branch up to 1.3p15.
*
* Revision 1.2.2.3 2005/04/16 21:18:32 drmlipp
* Made audit event filtering more flexible and added possibility to turn
* off audit log.
*
* Revision 1.2.2.2 2005/04/14 21:38:49 drmlipp
* Added new property.
*
* Revision 1.3 2005/02/04 14:25:27 drmlipp
* Synchronized with 1.3rc2.
*
* Revision 1.2.2.1 2005/01/31 15:43:55 drmlipp
* Started implementation of deferred choice.
*
* Revision 1.2 2005/01/05 21:31:01 mlipp
* Implemented new abstract methods.
*
* Revision 1.1.1.3 2004/08/18 15:18:46 drmlipp
* Update to 1.2
*
* Revision 1.44 2004/06/14 19:37:20 lipp
* Fixed assignment functions and cleaned up assignment related
* interfaces.
*
* Revision 1.43 2004/05/05 09:44:07 lipp
* Finished SAX based process creation (no cleanup of old code, yet).
*
* Revision 1.42 2004/03/20 21:08:44 lipp
* Added access to requesting processes' channels.
*
* Revision 1.41 2004/02/13 09:01:15 lipp
* Changed channel message data type to Map which is more appropriate.
*
* Revision 1.40 2004/02/12 14:26:59 lipp
* Adapted to name change.
*
* Revision 1.39 2004/02/12 14:17:03 lipp
* Adapted to extended process interface.
*
* Revision 1.38 2003/09/24 15:19:09 lipp
* Updated to interface changes.
*
* Revision 1.37 2003/09/22 12:56:53 lipp
* Fixed key creation for block activity (must be unique).
*
* Revision 1.36 2003/09/21 21:28:14 lipp
* Introducing "virtual" block activity.
*
* Revision 1.35 2003/06/27 09:44:13 lipp
* Fixed copyright/license information.
*
* Revision 1.34 2003/05/31 20:05:25 lipp
* Added support for different condition types.
*
* Revision 1.33 2003/05/16 08:08:49 lipp
* Handling OTHERWISE condition type.
*
* Revision 1.32 2003/05/14 13:05:06 lipp
* Made creator of subprocess inherited attribute.
*
* Revision 1.31 2003/05/08 08:14:17 lipp
* Adapted to changes.
*
* Revision 1.30 2003/05/05 14:39:50 lipp
* Moved code for removing process automatically to event handling.
*
* Revision 1.29 2003/05/05 07:04:51 lipp
* Handling parameters for sub-flow now.
*
* Revision 1.28 2003/04/26 16:12:35 lipp
* Moved some classes to reduce package dependencies.
*
* Revision 1.27 2003/04/19 18:33:28 lipp
* Improved handling of info.
*
* Revision 1.26 2003/02/03 10:09:27 lipp
* Adapted to latest changes in src.
*
* Revision 1.25 2002/11/26 11:23:29 lipp
* Modified RemoteException comment.
*
* Revision 1.24 2002/11/25 21:16:23 lipp
* Adapted to transition interface changes.
*
* Revision 1.23 2002/11/15 15:13:54 lipp
* Clarified usage of transitions as attribute. Included in caching.
*
* Revision 1.22 2002/11/04 08:40:25 barzik
* adapted to several modifications in the workflow component
*
* Revision 1.21 2002/10/21 19:08:05 lipp
* Continuing implementation of new state handling.
*
* Revision 1.20 2002/10/21 11:54:23 lipp
* Better suspend state handling.
*
* Revision 1.19 2002/10/18 13:46:02 lipp
* Getting on with adaptions...
*
* Revision 1.18 2002/10/09 14:27:33 lipp
* Intermediate, compilable state.
*
* Revision 1.17 2002/10/09 07:30:29 lipp
* log fire events as debug.
*
* Revision 1.16 2002/10/08 15:32:39 lipp
* Providing base implementations for more methods in AbstractActivity.
*
* Revision 1.15 2002/10/02 21:23:25 lipp
* Some adaptations.
*
* Revision 1.14 2002/09/17 06:53:17 huaiyang
* Do not use super.init(null).
*
* Revision 1.13 2002/08/30 11:38:51 lipp
* Added create time as process method.
*
* Revision 1.12 2002/08/30 09:06:40 lipp
* Renamed internal state to typed state and use polymorphism for type
* names where possible.
*
* Revision 1.11 2002/08/30 07:58:19 huaiyang
* Separation of Domain class and persistent class more cleaner.
*
* Revision 1.10 2002/08/29 20:55:34 lipp
* Added last state time persistence and process create time.
*
* Revision 1.9 2002/08/29 14:33:17 huaiyang
* Use createTransitionRef.
*
* Revision 1.8 2002/08/29 11:00:45 huaiyang
* Move operation methods towards domain for new style of procDefSpec.
*
* Revision 1.7 2002/08/28 15:04:34 huaiyang
* New methods in AbstractProcess.
*
* Revision 1.6 2002/08/28 12:58:03 lipp
* Fixed unittests.
*
* Revision 1.5 2002/08/28 12:47:20 lipp
* Starting new process generation.
*
* Revision 1.4 2002/08/28 09:54:51 lipp
* Moving domain logic to domain package...
*
* Revision 1.3 2002/08/27 11:36:37 lipp
* Better use of ProcessDefinition.
*
* Revision 1.2 2002/08/25 20:55:54 lipp
* Clearing up use of ProcessDefinition.
*
* Revision 1.1 2002/08/22 15:19:34 lipp
* Redesign of EJB persistence.
*
*/
package domain;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.rmi.RemoteException;
import java.security.Principal;
import org.jdom.Element;
import de.danet.an.workflow.internalapi.ExtActivityLocal;
import de.danet.an.workflow.internalapi.ExtProcessLocal;
import de.danet.an.workflow.internalapi.ExtTransitionLocal;
import de.danet.an.workflow.localapi.ActivityLocal;
import de.danet.an.workflow.localapi.ProcessLocal;
import de.danet.an.workflow.localapi.ProcessDefinitionDirectoryLocal;
import de.danet.an.workflow.localapi.TransitionLocal;
import de.danet.an.workflow.localcoreapi.WfActivityLocal;
import de.danet.an.workflow.localcoreapi.WfProcessLocal;
import de.danet.an.workflow.omgcore.CannotChangeRequesterException;
import de.danet.an.workflow.omgcore.InvalidDataException;
import de.danet.an.workflow.omgcore.InvalidPerformerException;
import de.danet.an.workflow.omgcore.ProcessData;
import de.danet.an.workflow.omgcore.ResultNotAvailableException;
import de.danet.an.workflow.omgcore.TransitionNotAllowedException;
import de.danet.an.workflow.omgcore.WfAuditEvent;
import de.danet.an.workflow.omgcore.WfProcess;
import de.danet.an.workflow.omgcore.WfProcessMgr;
import de.danet.an.workflow.omgcore.WfRequester;
import de.danet.an.workflow.omgcore.WfExecutionObject.NotRunningState;
import de.danet.an.workflow.omgcore.WfExecutionObject.State;
import de.danet.an.workflow.api.InvalidKeyException;
import de.danet.an.workflow.api.ProcessDefinition;
import de.danet.an.workflow.api.Process;
import de.danet.an.workflow.api.Transition;
import de.danet.an.workflow.api.Activity.Implementation;
import de.danet.an.workflow.api.Activity.JoinAndSplitMode;
import de.danet.an.workflow.api.Activity.StartFinishMode;
import de.danet.an.workflow.domain.AbstractProcess;
import de.danet.an.workflow.domain.TransitionDefinitionLocal;
/**
* This class implements the persistance layer required by
* <code>AbstractProcess</code> by, well, providing no
* persistence ...
*
* @author <a href="mailto:lipp@danet.de"></a>
* @version $Revision: 3002 $
*/
public class VolatileProcess extends AbstractProcess
implements ExtProcessLocal {
/** Persistent attribute <code>id</code>. */
private String paId;
/** Persistent attribute <code>key</code>. */
private String paKey;
/** Persistent attribute <code>name</code>. */
private String paName;
/** Persistent attribute <code>createTime</code>. */
private Date paCreateTime = new Date();
/** Persistent attribute <code>description</code>. */
private String paDescription;
/** Persistent attribute <code>priority</code>. */
private Priority paPriority = Priority.NORMAL;
/** Persistent attribute <code>typedState</code>. */
private State paTypedState;
/** Persistent attribute <code>lastStateTime</code>. */
private Date paLastStateTime;
/** Persistent attribute <code>processMgr</code>. */
private String paProcessMgr;
/** Persistent attribute <code>requester</code>. */
private WfRequester paRequester;
/** Persistent attribute <code>processDef</code>. */
private ProcessDefinition paProcessDef;
/** Persistent attribute <code>processData</code>. */
private ProcessData paProcessData;
/** Persistent attribute <code>processMgrName</code>. */
private String paProcessMgrName;
/** Persistent attribute <code>processMgrVersion</code>. */
private String paProcessMgrVersion;
/** Persistent attribute <code>Debug</code>. */
private boolean paDebug;
/** Persistent attribute <code>auditEventSelection</code>. */
private int paAuditEventSelection;
/** Persistent attribute <code>storeAuditEvents</code>. */
private boolean paStoreAuditEvents;
// normal attributes
private Collection activities = new ArrayList();
private WfProcessMgr pmgr = new VolatileMgr ();
private static int procKeyGen = 1;
private List transitions = new ArrayList();
/**
* Creates an instance of <code>TestProcess</code>
* with all attributes initialized to default values.
* @param key a <code>String</code> value
*/
public VolatileProcess (String key) {
setPaLastStateTime (new Date());
setPaPriority (Priority.NORMAL);
setPaTypedState (NotRunningState.NOT_STARTED);
paKey = key;
}
/**
* Creates an instance of <code>TestProcess</code>
* with all attributes initialized to default values.
*/
public VolatileProcess () {
this (Integer.toString(procKeyGen++));
}
/**
* Describe <code>thisRemote</code> method here.
*
* @return a <code>Process</code> value
*/
public Process toProcess () {
return new ProcessRemoteWrapper(this);
}
/* (non-Javadoc)
* Comment copied from interface or superclass.
*/
public ExtProcessLocal toProcessLocal() {
return this;
}
/**
* Remove this process.
*/
protected void removeThis () {
}
/**
* Returns the process manager which created this process.
* @return the associated process manager.
*/
public WfProcessMgr manager () {
return pmgr;
}
/* (non-Javadoc)
* Comment copied from interface or superclass.
*/
public void copyProcessDefinition(String procDefXpdl) {
}
//
// Implement abstract methods as unsupported
//
/**
* Describe <code>createTime</code> method here.
*
* @return a <code>Date</code> value
*/
public Date createTime () {
return getPaCreateTime();
}
/**
* Return the creator of the process.
* @return the process creator.
*/
public Principal processCreator() {
return null;
}
/**
* Return the process this process is a subflow of.
* @return the process or <code>null</code> if this process is not
* a subflow
*/
public ProcessLocal requestingProcessLocal () {
return null;
}
/**
* Describe <code>setActivities</code> method here.
*
* @param act a <code>Collection</code> value
*/
public void setActivities(Collection act) {
activities = act;
}
/**
* Describe <code>addActivity</code> method here.
*
* @param act an <code>Activity</code> value
*/
public void addActivity(ActivityLocal act) {
activities.add(act);
}
/**
* Describe <code>addTransition</code> method here.
*
* @param id a <code>String</code> value
* @param from an <code>Activity</code> value
* @param to an <code>Activity</code> value
*/
public void addTransition(String id, String group, int order,
ActivityLocal from, ActivityLocal to) {
addTransition(id, group, order, from, to, null);
}
/**
* Describe <code>addTransition</code> method here.
*
* @param id a <code>String</code> value
* @param from an <code>Activity</code> value
* @param to an <code>Activity</code> value
* @param cond condition.
*/
public void addTransition(String id, String group, int order,
ActivityLocal from, ActivityLocal to, String cond) {
doCreateTransition(id, group, order, from, to,
Transition.COND_TYPE_CONDITION, cond);
}
/**
* Gets a list of transitions for this process.
* @return list of transitions for this process
*/
public List transitionsLocal() {
return transitions;
}
/* (non-Javadoc)
* Comment copied from interface or superclass.
*/
public List transitionsLocalFrom(String fromActivityKey) {
List res = new ArrayList();
for (Iterator iter = transitions.iterator(); iter.hasNext();) {
TransitionLocal trans = (TransitionLocal)iter.next();
if (trans.from().key().equals(fromActivityKey)) {
res.add(trans);
}
}
return res;
}
/**
* Provide a new unique activity key.
*
* @return the key.
*/
protected Long createActivityKey () {
throw new UnsupportedOperationException ();
}
/**
* Describe <code>createActivity</code> method here.
*
* @param actElement an <code>Element</code> value
* @param jm a <code>JoinAndSplitMode</code> value
* @param sm a <code>JoinAndSplitMode</code> value
* @return a <code>WfActivity</code> value
*/
protected WfActivityLocal createActivity
(Element actElement, Long blockId,
JoinAndSplitMode jm, JoinAndSplitMode sm) {
throw new UnsupportedOperationException();
}
/**
* Factory method that create new persistent objects of type
* <code>WfActivity</code>. Must be implement by the persistence
* layer.
*
* @param blockActId if the activity is part of a block activity,
* else <code>null</code>
* @param priority a <code>Priority</code> value
* @param name the activity's name
* @param description activity description
* @param startMode the start mode
* @param finishMode the finish mode
* @param joinMode the join mode
* @param splitMode the split mode
* @param implementation the implementation description
* @param performer the performer
* @param deadlines the deadlines
* @param deferChoiceOnSplit if true, choice is to be deferred
* @param auditEventSelection the audit event selection
* @param storeAuditEvents if true, audit events are stored in the
* database
* @return the created activity.
*/
protected WfActivityLocal createActivity
(String blockActId, Priority priority, String name, String description,
StartFinishMode startMode, StartFinishMode finishMode,
JoinAndSplitMode joinMode, JoinAndSplitMode splitMode,
Implementation[] implementation, String performer, List deadlines,
boolean deferChoiceOnSplit, int auditEventSelection,
boolean storeAuditEvents) {
throw new UnsupportedOperationException();
}
/**
* Describe <code>requester</code> method here.
*
* @return a <code>WfRequester</code> value
*/
public WfRequester requester() {
return new WfRequester () {
public Collection performers() {
throw new UnsupportedOperationException();
}
public boolean isMemberOfPerformers(WfProcess member) {
throw new UnsupportedOperationException();
}
public void receiveEvent (WfAuditEvent e)
throws InvalidPerformerException {
throw new UnsupportedOperationException();
}
};
}
/**
* Return the process definition directory.
* While there is no immediate relation between a process
* instance and the known process definitions, the definitions
* nevertheless make up part of the environment of a process.
* Specifically, this method is needed to start a sub-process
* in an activity.
* @return the process definition directory
*/
public ProcessDefinitionDirectoryLocal processDefinitionDirectoryLocal () {
throw new UnsupportedOperationException();
}
/**
* Describe <code>getXPDL</code> method here.
*
* @return a <code>String</code> value
*/
public String getXPDL() {
throw new UnsupportedOperationException();
}
/**
* Describe <code>steps</code> method here.
*
* @return a <code>Collection</code> value
*/
public Collection stepsLocal() {
return activities;
}
/**
* Describe <code>processDefinition</code> method here.
*
* @return a <code>ProcessDefinition</code> value
*/
public ProcessDefinition processDefinition() {
throw new UnsupportedOperationException();
}
/**
* Returns <code>true</code> if the process will be removed automatically
* on completion.
*/
public boolean removeOnClose () throws RemoteException {
return false;
}
public int cleanupMode () {
return ProcessDefinition.REMOVE_MANUAL;
}
/**
* Describe <code>history</code> method here.
*
* @return a <code>Collection</code> value
*/
public Collection history() {
throw new UnsupportedOperationException();
}
/**
* Describe <code>setRequester</code> method here.
*
* @param requester a <code>WfRequester</code> value
* @exception CannotChangeRequesterException if an error occurs
*/
public void setRequester(WfRequester requester)
throws CannotChangeRequesterException {
throw new UnsupportedOperationException();
}
/**
* Describe <code>activityByKey</code> method here.
*
* @param key a <code>String</code> value
* @return an <code>Activity</code> value
* @exception InvalidKeyException if an error occurs
*/
public ActivityLocal activityByKeyLocal (String key) throws
InvalidKeyException {
throw new UnsupportedOperationException();
}
/**
* Return an arbitrary activity with the given key. The activity
* need not belong to this process.
* @param key activity key
* @return the activity
* @throws InvalidKeyException if the activity cannot be found
*/
protected ExtActivityLocal lookupActivityLocal (String key)
throws InvalidKeyException {
throw new UnsupportedOperationException();
}
/**
* Describe <code>processContext</code> method here.
*
* @return a <code>ProcessData</code> value
*/
public ProcessData processContext () {
throw new UnsupportedOperationException();
}
/**
* Describe <code>complete</code> method here.
*
* @param activity a <code>Long</code> value
* @param s a <code>State</code> value
*/
public void complete (Long activity, State s) {
throw new UnsupportedOperationException();
}
/**
* Describe <code>createTransitionRef</code> method here.
*
* @param serialNum a <code>long</code> value
* @param fromActivity an <code>Activity</code> value
* @param toActivity an <code>Activity</code> value
*/
protected void createTransitionRef
(long serialNum, ActivityLocal fromActivity, ActivityLocal toActivity) {
throw new UnsupportedOperationException();
}
/**
* Create a new transition with given id, From Activity, To Activity.
* @param id a <code>String</code> value
* @param fromAct an <code>Activity</code> value
* @param toAct an <code>Activity</code> value
* @return the created transition.
*/
protected TransitionLocal createTransition
(String id, String group, int order, ActivityLocal fromAct,
ActivityLocal toAct) {
return doCreateTransition (id,group,order,fromAct,toAct,
Transition.COND_TYPE_CONDITION,null);
}
public static class ExtTransitionDefinition extends TransitionDefinitionLocal
implements ExtTransitionLocal {
private boolean pendingToken = false;
/**
* @param pid
* @param tid
* @param group
* @param order
* @param from
* @param to
* @param condType
* @param condition
*/
public ExtTransitionDefinition(String pid, String tid, String group, int order, ActivityLocal from, ActivityLocal to, int condType, String condition) {
super(pid, tid, group, order, from, to, condType, condition);
}
/* (non-Javadoc)
* @see de.danet.an.workflow.apix.ExtTransition#hasPendingToken()
*/
public boolean hasPendingToken() {
return pendingToken;
}
/* (non-Javadoc)
* @see de.danet.an.workflow.apix.ExtTransition#setPendingToken(boolean)
*/
public void setPendingToken(boolean value) {
pendingToken = value;
}
}
/**
* Create a new transition with given id, From Activity, To Activity.
* @param id a <code>String</code> value
* @param fromAct an <code>Activity</code> value
* @param toAct an <code>Activity</code> value
* @param cond condition.
* @return the created transition.
*/
protected TransitionLocal doCreateTransition
(String id, String group, int order, ActivityLocal fromAct,
ActivityLocal toAct, int condType, String cond) {
TransitionLocal trans = new ExtTransitionDefinition
(paKey,id,group,order,fromAct,toAct,condType,cond);
transitions.add(trans);
return trans;
}
/**
* Describe <code>activityRequesterInfo</code> method here.
*
* @param req a <code>WfRequester</code> value
* @return a <code>WfAuditEvent</code> value
*/
protected WfAuditEvent activityRequesterInfo(WfRequester req) {
throw new UnsupportedOperationException();
}
/**
* Returns an audit event object with process relevant information
* initialized.
* @return the process related information.
*/
public WfAuditEvent auditEventBase() {
return auditEventBase(null);
}
/**
* Start a timer that will call <code>handleTimeout</code> at the
* given date with the given info.
* @param due target date
* @param info the context
*/
public void startTimer (Date due, Serializable info) {
}
/**
* Stop all timers that this object has created.
*/
public void stopTimers () {
}
/**
* Deliver a message on the given channel to a receiver tool
* listening on that channel.
*
* @param channel the channel name
* @param message the message
* @return <code>true</code> if the mesage could be delivered,
* <code>false</code> if no activity was listening
* @throws InvalidDataException if the message contains invalid data
* @ejb.interface-method view-type="remote"
* @ejb.transaction type="Required"
*/
public boolean deliverChannelMessage (String channel, Map message)
throws InvalidDataException {
throw new UnsupportedOperationException ();
}
/**
* Deliver a message on the given channel to a receiver tool
* listening on that channel. If no tool is listening, store the
* message.
*
* @param channel the channel name
* @param message the message
* @throws InvalidDataException if the message contains invalid data
* @ejb.interface-method view-type="remote"
* @ejb.transaction type="Required"
*/
public void submitChannelMessage (String channel, Map message)
throws InvalidDataException {
throw new UnsupportedOperationException ();
}
/**
* Looks for a message on the given channel and if found returns it.
*
* @param channel the channel name
* @return the message or <code>null</code>
* @ejb.interface-method view-type="remote"
* @ejb.transaction type="Required"
*/
public Map lookForMessage (String channel) {
throw new UnsupportedOperationException ();
}
/* (non-Javadoc)
* @see de.danet.an.workflow.domain.AbstractProcess#result()
*/
public ProcessData result()
throws ResultNotAvailableException {
return paProcessData;
}
//
// Implement accessor methods for the persistent attributes
//
/* (non-Javadoc)
* Comment copied from interface or superclass.
*/
public boolean choose(ActivityLocal activity)
throws TransitionNotAllowedException {
// TODO Auto-generated method stub
return false;
}
/* (non-Javadoc)
* Comment copied from interface or superclass.
*/
public void closeActivity(ActivityLocal activity, State closedState) {
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* Comment copied from interface or superclass.
*/
public void handleException(ActivityLocal activity, String exceptionName) {
// TODO Auto-generated method stub
}
/**
* The getter method implementation for the persistent
* attribute <code>key</code>.
*
* @return the value of key.
*/
protected String getPaKey() {
return paKey;
}
/**
* The getter method implementation for the persistent
* attribute <code>name</code>.
*
* @return the value of name.
* @see #setPaName
*/
protected String getPaName() {
return paName;
}
/**
* The setter method implementation for the persistent
* attribute <code>name</code>.
*
* @param newName the new value of name.
* @see #getPaName
*/
protected void setPaName(String newName) {
paName = newName;
}
/**
* The getter method implementation for the persistent
* attribute <code>description</code>.
*
* @return the value of description.
* @see #setPaDescription
*/
protected String getPaDescription() {
return paDescription;
}
/**
* The setter method implementation for the persistent
* attribute <code>description</code>.
*
* @param newDescription the new value of description.
* @see #getPaDescription
*/
protected void setPaDescription(String newDescription) {
paDescription = newDescription;
}
/**
* The getter method implementation for the persistent
* attribute <code>priority</code>.
*
* @return the value of priority.
* @see #setPaPriority
*/
protected Priority getPaPriority() {
return paPriority;
}
/**
* The setter method implementation for the persistent
* attribute <code>priority</code>.
*
* @param newPriority the new value of priority.
* @see #getPaPriority
*/
protected void setPaPriority(Priority newPriority) {
paPriority = newPriority;
}
/**
* The getter method implementation for the persistent
* attribute <code>typedState</code>.
*
* @return the value of typedState.
* @see #setPaTypedState
*/
protected State getPaTypedState() {
return paTypedState;
}
/**
* The getter method implementation for the persistent
* attribute <code>lastStateTime</code>.
*
* @return the value of lastStateTime.
* @see #setPaLastStateTime
*/
protected Date getPaLastStateTime() {
return paLastStateTime;
}
/**
* The setter method implementation for the persistent
* attribute <code>lastStateTime</code>.
*
* @param newLastStateTime the new value of lastStateTime.
* @see #getPaLastStateTime
*/
protected void setPaLastStateTime(Date newLastStateTime) {
paLastStateTime = newLastStateTime;
}
/**
* The setter method implementation for the persistent
* attribute <code>typedState</code>.
*
* @param newTypedState the new value of typedState.
* @see #getPaTypedState
*/
protected void setPaTypedState(State newTypedState) {
paTypedState = newTypedState;
}
/**
* The getter method implementation for the persistent
* attribute <code>processMgr</code>.
*
* @return the value of processMgr.
* @see #setPaProcessMgr
*/
protected String getPaProcessMgr() {
return paProcessMgr;
}
/**
* The setter method implementation for the persistent
* attribute <code>processMgr</code>.
*
* @param newProcessMgr the new value of processMgr.
* @see #getPaProcessMgr
*/
protected void setPaProcessMgr(String newProcessMgr) {
paProcessMgr = newProcessMgr;
}
/**
* The getter method implementation for the persistent
* attribute <code>requester</code>.
*
* @return the value of requester.
* @see #setPaRequester
*/
protected WfRequester getPaRequester() {
return paRequester;
}
/**
* The setter method implementation for the persistent
* attribute <code>requester</code>.
*
* @param newRequester the new value of requester.
* @see #getPaRequester
*/
protected void setPaRequester(WfRequester newRequester) {
paRequester = newRequester;
}
/**
* The getter method implementation for the persistent
* attribute <code>processDef</code>.
*
* @return the value of processDef.
* @see #setPaProcessDef
*/
protected ProcessDefinition getPaProcessDef() {
return paProcessDef;
}
/**
* The setter method implementation for the persistent
* attribute <code>processDef</code>.
*
* @param newProcessDef the new value of processDef.
* @see #getPaProcessDef
*/
protected void setPaProcessDef(ProcessDefinition newProcessDef) {
paProcessDef = newProcessDef;
}
/**
* The getter method implementation for the persistent
* attribute <code>processData</code>.
*
* @return the value of processData.
* @see #setPaProcessData
*/
protected ProcessData getPaProcessData() {
return paProcessData;
}
/**
* The setter method implementation for the persistent
* attribute <code>processData</code>.
*
* @param newProcessData the new value of processData.
* @see #getPaProcessData
*/
protected void setPaProcessData(ProcessData newProcessData) {
paProcessData = newProcessData;
}
/**
* The getter method implementation for the persistent
* attribute <code>processMgrName</code>.
*
* @return the value of processMgrName.
* @see #setPaProcessMgrName
*/
protected String getPaProcessMgrName() {
return paProcessMgrName;
}
/**
* The setter method implementation for the persistent
* attribute <code>processMgrName</code>.
*
* @param newProcessMgrName the new value of processMgrName.
* @see #getPaProcessMgrName
*/
protected void setPaProcessMgrName(String newProcessMgrName) {
paProcessMgrName = newProcessMgrName;
}
/**
* The getter method implementation for the persistent
* attribute <code>processMgrVersion</code>.
*
* @see #setPaProcessMgrVersion
* @return the value of processMgrVersion.
*/
protected String getPaProcessMgrVersion() {
return paProcessMgrVersion;
}
/**
* The setter method implementation for the persistent
* attribute <code>processMgrVersion</code>.
*
* @param newProcessMgrVersion the new value of processMgrVersion.
* @see #getPaProcessMgrVersion
*/
protected void setPaProcessMgrVersion(String newProcessMgrVersion) {
paProcessMgrVersion = newProcessMgrVersion;
}
/**
* The getter method for the persistent attribute <code>id</code>.
*
* @return the value of process id.
* @see #setPaId
*/
protected String getPaId() {
return paId;
}
/**
* The setter method for the persistent attribute <code>Id</code>.
*
* @param newId the new value of process id.
* @see #getPaId
*/
protected void setPaId(String newId) {
paId = newId;
}
/**
* The getter method implementation for the persistent
* attribute <code>createTime</code>.
*
* @return the value of createTime.
* @see #setPaCreateTime
*/
protected Date getPaCreateTime() {
return paCreateTime;
}
/**
* The getter method implementation for the persistent
* attribute <code>blockDeadlines</code>.
*
* @see #setPaBlockDeadlines
* @return the value of blockDeadlines.
*/
protected Map getPaBlockDeadlines() {
return new HashMap ();
}
/**
* The getter method implementation for the persistent
* attribute <code>Debug</code>.
*
* @see #setPaDebug
* @return the value of Debug.
*/
protected boolean getPaDebug() {
return paDebug;
}
/**
* The setter method implementation for the persistent
* attribute <code>Debug</code>.
*
* @param newDebug the new value of Debug.
* @see #getPaDebug
*/
protected void setPaDebug(boolean newDebug) {
paDebug = newDebug;
}
/**
* The getter method implementation for the persistent
* attribute <code>auditEventSelection</code>.
*
* @see #setPaAuditEventSelection
* @return the value of auditEventSelection.
*/
protected int getPaAuditEventSelection() {
return paAuditEventSelection;
}
/**
* The setter method implementation for the persistent
* attribute <code>auditEventSelection</code>.
*
* @param newAuditEventSelection the new value of auditEventSelection.
* @see #getPaAuditEventSelection
*/
protected void setPaAuditEventSelection(int newAuditEventSelection) {
paAuditEventSelection = newAuditEventSelection;
}
/**
* The getter method implementation for the persistent
* attribute <code>storeAuditEvents</code>.
*
* @see #setPaStoreAuditEvents
* @return the value of storeAuditEvents.
*/
protected boolean getPaStoreAuditEvents() {
return paStoreAuditEvents;
}
/**
* The setter method implementation for the persistent
* attribute <code>storeAuditEvents</code>.
*
* @param newStoreAuditEvents the new value of storeAuditEvents.
* @see #getPaStoreAuditEvents
*/
protected void setPaStoreAuditEvents(boolean newStoreAuditEvents) {
paStoreAuditEvents = newStoreAuditEvents;
}
}