0001: /*
0002: * This file is part of the WfMOpen project.
0003: * Copyright (C) 2001-2003 Danet GmbH (www.danet.de), GS-AN.
0004: * All rights reserved.
0005: *
0006: * This program is free software; you can redistribute it and/or modify
0007: * it under the terms of the GNU General Public License as published by
0008: * the Free Software Foundation; either version 2 of the License, or
0009: * (at your option) any later version.
0010: *
0011: * This program is distributed in the hope that it will be useful,
0012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
0013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0014: * GNU General Public License for more details.
0015: *
0016: * You should have received a copy of the GNU General Public License
0017: * along with this program; if not, write to the Free Software
0018: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
0019: *
0020: * $Id: VolatileActivity.java,v 1.10.2.1 2007/11/02 22:11:45 mlipp Exp $
0021: *
0022: * $Log: VolatileActivity.java,v $
0023: * Revision 1.10.2.1 2007/11/02 22:11:45 mlipp
0024: * Merged bug fixes from HEAD.
0025: *
0026: * Revision 1.11 2007/09/21 06:19:35 mlipp
0027: * Fixed problem with NamingException during process deletion.
0028: *
0029: * Revision 1.10 2007/05/03 21:58:24 mlipp
0030: * Internal refactoring for making better use of local EJBs.
0031: *
0032: * Revision 1.9 2006/10/17 22:58:39 mlipp
0033: * Continuing implementation of suspended exception handling.
0034: *
0035: * Revision 1.8 2006/10/13 11:41:58 drmlipp
0036: * New attribute for saving exception name.
0037: *
0038: * Revision 1.7 2006/09/29 12:32:11 drmlipp
0039: * Consistently using WfMOpen as projct name now.
0040: *
0041: * Revision 1.6 2005/04/22 15:11:06 drmlipp
0042: * Merged changes from 1.3 branch up to 1.3p15.
0043: *
0044: * Revision 1.3.2.5 2005/04/16 21:18:32 drmlipp
0045: * Made audit event filtering more flexible and added possibility to turn
0046: * off audit log.
0047: *
0048: * Revision 1.3.2.4 2005/04/14 21:38:48 drmlipp
0049: * Added new property.
0050: *
0051: * Revision 1.5 2005/04/08 11:28:06 drmlipp
0052: * Merged changes from 1.3 branch up to 1.3p6.
0053: *
0054: * Revision 1.3.2.3 2005/04/05 15:53:13 drmlipp
0055: * Optimized invocations of resource assignment service.
0056: *
0057: * Revision 1.4 2005/02/04 14:25:27 drmlipp
0058: * Synchronized with 1.3rc2.
0059: *
0060: * Revision 1.3.2.2 2005/02/01 16:08:56 drmlipp
0061: * Implemented deferred choice.
0062: *
0063: * Revision 1.3.2.1 2005/01/31 15:43:54 drmlipp
0064: * Started implementation of deferred choice.
0065: *
0066: * Revision 1.3 2005/01/19 14:35:47 drmlipp
0067: * Added methods for accessing new attribute.
0068: *
0069: * Revision 1.2 2005/01/05 21:31:01 mlipp
0070: * Implemented new abstract methods.
0071: *
0072: * Revision 1.1.1.3 2004/08/18 15:18:46 drmlipp
0073: * Update to 1.2
0074: *
0075: * Revision 1.35 2004/05/07 18:48:46 lipp
0076: * Fixed call to super constructor.
0077: *
0078: * Revision 1.34 2004/05/07 15:02:27 lipp
0079: * Removed legacy initialization code.
0080: *
0081: * Revision 1.33 2004/03/20 21:08:44 lipp
0082: * Added access to requesting processes' channels.
0083: *
0084: * Revision 1.32 2004/01/30 14:36:30 lipp
0085: * Partial implementation of message receipt.
0086: *
0087: * Revision 1.31 2003/09/24 15:19:09 lipp
0088: * Updated to interface changes.
0089: *
0090: * Revision 1.30 2003/09/21 21:28:14 lipp
0091: * Introducing "virtual" block activity.
0092: *
0093: * Revision 1.29 2003/09/12 14:15:15 lipp
0094: * Suspend delay fixed.
0095: *
0096: * Revision 1.28 2003/09/09 13:42:27 lipp
0097: * Updated.
0098: *
0099: * Revision 1.27 2003/09/08 15:37:18 lipp
0100: * Introduced deadline definition and suspend tracking.
0101: *
0102: * Revision 1.26 2003/06/27 09:44:13 lipp
0103: * Fixed copyright/license information.
0104: *
0105: * Revision 1.25 2003/05/14 13:05:05 lipp
0106: * Made creator of subprocess inherited attribute.
0107: *
0108: * Revision 1.24 2003/05/14 09:01:00 lipp
0109: * Some fixes.
0110: *
0111: * Revision 1.23 2003/05/14 08:48:25 lipp
0112: * Added subflow attribute.
0113: *
0114: * Revision 1.22 2003/05/06 09:43:14 lipp
0115: * Moved tool/sub-process invocation.
0116: *
0117: * Revision 1.21 2003/05/02 14:55:58 lipp
0118: * Resolved some more package dependencies.
0119: *
0120: * Revision 1.20 2003/04/26 18:57:02 lipp
0121: * Moved extended interfaces to own package.
0122: *
0123: * Revision 1.19 2003/02/03 10:09:27 lipp
0124: * Adapted to latest changes in src.
0125: *
0126: * Revision 1.18 2003/01/24 16:47:09 lipp
0127: * Implemented thread logging.
0128: *
0129: * Revision 1.17 2002/12/19 21:37:42 lipp
0130: * Reorganized interfaces.
0131: *
0132: * Revision 1.16 2002/12/05 10:20:39 lipp
0133: * Adapted unittests to assignment changes.
0134: *
0135: * Revision 1.15 2002/12/04 16:05:08 lipp
0136: * Reorganized assignment handling.
0137: *
0138: * Revision 1.14 2002/11/26 11:23:29 lipp
0139: * Modified RemoteException comment.
0140: *
0141: * Revision 1.13 2002/11/25 21:16:23 lipp
0142: * Adapted to transition interface changes.
0143: *
0144: * Revision 1.12 2002/11/20 12:25:38 lipp
0145: * Moved ActivityFinderAndKey to super interface.
0146: *
0147: * Revision 1.11 2002/10/21 19:08:05 lipp
0148: * Continuing implementation of new state handling.
0149: *
0150: * Revision 1.10 2002/10/18 13:46:02 lipp
0151: * Getting on with adaptions...
0152: *
0153: * Revision 1.9 2002/10/09 20:44:54 lipp
0154: * New executor implementation for suspend support.
0155: *
0156: * Revision 1.8 2002/10/09 14:27:33 lipp
0157: * Intermediate, compilable state.
0158: *
0159: * Revision 1.7 2002/10/08 15:32:39 lipp
0160: * Providing base implementations for more methods in AbstractActivity.
0161: *
0162: * Revision 1.6 2002/10/02 21:23:25 lipp
0163: * Some adaptations.
0164: *
0165: * Revision 1.5 2002/09/23 20:31:28 lipp
0166: * Implemented async/sync invocation.
0167: *
0168: * Revision 1.4 2002/08/30 09:06:40 lipp
0169: * Renamed internal state to typed state and use polymorphism for type
0170: * names where possible.
0171: *
0172: * Revision 1.3 2002/08/29 18:58:28 lipp
0173: * Improved initialization.
0174: *
0175: * Revision 1.2 2002/08/29 12:37:46 lipp
0176: * Added missing method.
0177: *
0178: * Revision 1.1 2002/08/22 15:19:34 lipp
0179: * Redesign of EJB persistence.
0180: *
0181: */
0182: package domain;
0183:
0184: import java.io.Serializable;
0185:
0186: import java.util.ArrayList;
0187: import java.util.Collection;
0188: import java.util.Date;
0189: import java.util.List;
0190:
0191: import java.rmi.RemoteException;
0192:
0193: import org.jdom.Element;
0194:
0195: import de.danet.an.workflow.internalapi.ExtActivityLocal;
0196: import de.danet.an.workflow.internalapi.ExtProcessLocal;
0197: import de.danet.an.workflow.internalapi.ThreadInfo;
0198: import de.danet.an.workflow.localapi.ActivityLocal;
0199: import de.danet.an.workflow.localapi.ProcessLocal;
0200: import de.danet.an.workflow.localcoreapi.WfProcessLocal;
0201: import de.danet.an.workflow.omgcore.WfAuditEvent;
0202: import de.danet.an.workflow.omgcore.WfProcess;
0203: import de.danet.an.workflow.omgcore.WfExecutionObject.State;
0204:
0205: import de.danet.an.workflow.api.Activity;
0206: import de.danet.an.workflow.api.InvalidKeyException;
0207: import de.danet.an.workflow.api.Activity.Implementation;
0208: import de.danet.an.workflow.api.Activity.JoinAndSplitMode;
0209: import de.danet.an.workflow.api.Activity.StartFinishMode;
0210:
0211: import de.danet.an.workflow.domain.AbstractActivity;
0212: import de.danet.an.workflow.domain.AbstractProcess;
0213:
0214: import de.danet.an.workflow.spis.ras.ActivityFinder;
0215: import de.danet.an.workflow.spis.ras.ResourceAssignmentService;
0216:
0217: /**
0218: * This class implements the persistance layer required by
0219: * <code>AbstractActivity</code> by, well, providing no
0220: * persistence ...
0221: *
0222: * @author <a href="mailto:lipp@danet.de"></a>
0223: * @version $Revision: 1.10.2.1 $
0224: */
0225:
0226: public class VolatileActivity extends AbstractActivity implements
0227: ExtActivityLocal {
0228:
0229: private AbstractProcess container;
0230:
0231: //
0232: // Provide the persistent attributes
0233: //
0234:
0235: /** Persistent attribute <code>key</code>. */
0236: private String paKey;
0237:
0238: /** Persistent attribute <code>name</code>. */
0239: private String paName;
0240:
0241: /** Persistent attribute <code>description</code>. */
0242: private String paDescription;
0243:
0244: /** Persistent attribute <code>priority</code>. */
0245: private Priority paPriority = Priority.NORMAL;
0246:
0247: /** Persistent attribute <code>typedState</code>. */
0248: private State paTypedState;
0249:
0250: /** Persistent attribute <code>lastStateTime</code>. */
0251: private Date paLastStateTime;
0252:
0253: /** Persistent attribute <code>startMode</code>. */
0254: private StartFinishMode paStartMode = StartFinishMode.AUTOMATIC;
0255:
0256: /** Persistent attribute <code>finishMode</code>. */
0257: private StartFinishMode paFinishMode = StartFinishMode.AUTOMATIC;
0258:
0259: /** Persistent attribute <code>joinMode</code>. */
0260: private JoinAndSplitMode paJoinMode = JoinAndSplitMode.AND;
0261:
0262: /** Persistent attribute <code>splitMode</code>. */
0263: private JoinAndSplitMode paSplitMode = JoinAndSplitMode.AND;
0264:
0265: /** Persistent attribute <code>performer</code>. */
0266: private String paPerformer;
0267:
0268: /** Persistent attribute <code>executor</code>. */
0269: private Integer paExecutor = null;
0270:
0271: /** Persistent attribute <code>tools</code>. */
0272: private Implementation[] paActImpl = null;
0273:
0274: /** Persistent attribute <code>threadInfo</code>. */
0275: private ThreadInfo paThreadInfo;
0276:
0277: /** Persistent attribute <code>Subflow</code>. */
0278: private String paSubflow;
0279:
0280: /** Persistent attribute <code>deadlines</code>. */
0281: private List paDeadlines = new ArrayList();
0282:
0283: /** Persistent attribute <code>startTime</code>. */
0284: private Date paStartTime;
0285:
0286: /** Persistent attribute <code>suspendStart</code>. */
0287: private Date paSuspendStart;
0288:
0289: /** Persistent attribute <code>suspendAccum</code>. */
0290: private long paSuspendAccum;
0291:
0292: /** Persistent attribute <code>pendingException</code>. */
0293: private String paPendingException;
0294:
0295: /** Persistent attribute <code>blockActivity</code>. */
0296: private Long paBlockActivity;
0297:
0298: /** Persistent attribute <code>waitOnProc</code>. */
0299: private Long paWaitOnProc;
0300:
0301: /** Persistent attribute <code>waitOnChan</code>. */
0302: private String paWaitOnChan;
0303:
0304: /** Persistent attribute <code>Debug</code>. */
0305: private boolean paDebug;
0306:
0307: /** Persistent attribute <code>subStateBackup</code>. */
0308: private int paSubStateBackup;
0309:
0310: /** Persistent attribute <code>deferChoiceOnSplit</code>. */
0311: private boolean paDeferChoiceOnSplit;
0312:
0313: /** Persistent attribute <code>preliminaryElected</code>. */
0314: private boolean paPreliminaryChosen;
0315:
0316: /** Persistent attribute <code>noAssignments</code>. */
0317: private boolean paNoAssignments;
0318:
0319: /** Persistent attribute <code>auditEventSelection</code>. */
0320: private int paAuditEventSelection;
0321:
0322: /** Persistent attribute <code>storeAuditEvents</code>. */
0323: private boolean paStoreAuditEvents;
0324:
0325: /** Persistent attribute <code>pendingExceptionIsFromBlock</code>. */
0326: private boolean paPendingExceptionIsFromBlock;
0327:
0328: private static int actKeyGen = 1;
0329:
0330: /**
0331: * Creates an instance of <code>VolatileActivity</code>
0332: * with all attributes initialized to default values.
0333: * @param proc a <code>Process</code> value
0334: * @param key a <code>String</code> value
0335: */
0336: public VolatileActivity(AbstractProcess proc, String key) {
0337: super .init(null, null, null, null, StartFinishMode.AUTOMATIC,
0338: StartFinishMode.AUTOMATIC, JoinAndSplitMode.AND,
0339: JoinAndSplitMode.AND, null, null, new ArrayList(),
0340: false, 0, false);
0341: container = proc;
0342: paKey = key;
0343: }
0344:
0345: /**
0346: * Creates an instance of <code>VolatileActivity</code>
0347: * with all attributes initialized to default values.
0348: * @param proc a <code>Process</code> value
0349: */
0350: public VolatileActivity(AbstractProcess proc) {
0351: this (proc, Integer.toString(actKeyGen++));
0352: }
0353:
0354: /**
0355: * Describe <code>setStartMode</code> method here.
0356: *
0357: * @param mode a <code>StartFinishMode</code> value
0358: */
0359: public void setStartMode(StartFinishMode mode) {
0360: setPaStartMode(mode);
0361: }
0362:
0363: /**
0364: * Describe <code>thisRemote</code> method here.
0365: *
0366: * @return an <code>Activity</code> value
0367: */
0368: public Activity toActivity() {
0369: return new ActivityRemoteWrapper(this );
0370: }
0371:
0372: /* (non-Javadoc)
0373: * Comment copied from interface or superclass.
0374: */
0375: public ExtActivityLocal toActivityLocal() {
0376: return this ;
0377: }
0378:
0379: /**
0380: * Returns a <code>WfAuditEvent</code> containing information about the
0381: * activity and its container, only.
0382: * @return the event containing the required information.
0383: */
0384: public WfAuditEvent auditEventBase() {
0385: throw new UnsupportedOperationException();
0386: }
0387:
0388: /**
0389: * Describe <code>container</code> method here.
0390: *
0391: * @return a <code>WfProcess</code> value
0392: */
0393: public WfProcess container() {
0394: return container.toProcess();
0395: }
0396:
0397: /**
0398: * Describe <code>container</code> method here.
0399: *
0400: * @return a <code>WfProcess</code> value
0401: */
0402: public WfProcessLocal containerLocal() {
0403: return container.toProcessLocal();
0404: }
0405:
0406: /**
0407: * Lookup a process by its key. Can only be implemented by the
0408: * persistence layer.
0409: * @param key the primary key
0410: * @return the process
0411: * @throws InvalidKeyException if no process with the given key
0412: * exists
0413: */
0414: protected ExtProcessLocal lookupProcessLocal(String key)
0415: throws InvalidKeyException {
0416: throw new UnsupportedOperationException();
0417: }
0418:
0419: /**
0420: * Updates the process name (which is cached by the activity EJB)
0421: * if the process name changes.
0422: * @param newName the new process name.
0423: */
0424: public void updateProcessName(String newName) {
0425: }
0426:
0427: /**
0428: * Get the resource assignment service.
0429: * @return the configured resource assignment service.
0430: */
0431: protected ResourceAssignmentService resourceAssignmentService() {
0432: return null;
0433: }
0434:
0435: /**
0436: * Returns an {@link de.danet.an.workflow.ras.ActivityFinder
0437: * <code>ActivityFinder</code>} that identifies this activity
0438: * against a resource assignment service as defined by
0439: * {@link de.danet.an.workflow.ras the ras package}.
0440: *
0441: * @return the activity finder.
0442: */
0443: public ActivityFinder activityFinder() {
0444: return null;
0445: }
0446:
0447: /**
0448: * Start a timer that will call <code>handleTimeout</code> at the
0449: * given date with the given info.
0450: * @param due target date
0451: * @param info the context
0452: */
0453: public void startTimer(Date due, Serializable info) {
0454: }
0455:
0456: /**
0457: * Stop all timers that this object has created.
0458: */
0459: public void stopTimers() {
0460: }
0461:
0462: //
0463: // Implement abstract methods as unsupported
0464: //
0465:
0466: /**
0467: * Describe <code>nextActivities</code> method here.
0468: *
0469: * @return a <code>List</code> value
0470: */
0471: public List nextActivities() {
0472: throw new UnsupportedOperationException();
0473: }
0474:
0475: /**
0476: * Returns an <code>WfAuditEvent</code> containing container-related
0477: * information.
0478: * @return the audit event
0479: */
0480: protected WfAuditEvent containerAuditEventBase() {
0481: return ((VolatileProcess) containerLocal()).auditEventBase();
0482: }
0483:
0484: /**
0485: * Describe <code>history</code> method here.
0486: *
0487: * @return a <code>Collection</code> value
0488: */
0489: public Collection history() {
0490: throw new UnsupportedOperationException();
0491: }
0492:
0493: //
0494: // Implement accessor methods for the persistent attributes
0495: //
0496:
0497: /**
0498: * The getter method implementation for the persistent
0499: * attribute <code>key</code>.
0500: *
0501: * @return the value of key.
0502: */
0503: protected String getPaKey() {
0504: return paKey;
0505: }
0506:
0507: /**
0508: * The getter method implementation for the persistent
0509: * attribute <code>name</code>.
0510: *
0511: * @return the value of name.
0512: * @see #setPaName
0513: */
0514: protected String getPaName() {
0515: return paName;
0516: }
0517:
0518: /**
0519: * The setter method implementation for the persistent
0520: * attribute <code>name</code>.
0521: *
0522: * @param newName the new value of name.
0523: * @see #getPaName
0524: */
0525: protected void setPaName(String newName) {
0526: paName = newName;
0527: }
0528:
0529: /**
0530: * The getter method implementation for the persistent
0531: * attribute <code>description</code>.
0532: *
0533: * @return the value of description.
0534: * @see #setPaDescription
0535: */
0536: protected String getPaDescription() {
0537: return paDescription;
0538: }
0539:
0540: /**
0541: * The setter method implementation for the persistent
0542: * attribute <code>description</code>.
0543: *
0544: * @param newDescription the new value of description.
0545: * @see #getPaDescription
0546: */
0547: protected void setPaDescription(String newDescription) {
0548: paDescription = newDescription;
0549: }
0550:
0551: /**
0552: * The getter method implementation for the persistent
0553: * attribute <code>priority</code>.
0554: *
0555: * @return the value of priority.
0556: * @see #setPaPriority
0557: */
0558: protected Priority getPaPriority() {
0559: return paPriority;
0560: }
0561:
0562: /**
0563: * The setter method implementation for the persistent
0564: * attribute <code>priority</code>.
0565: *
0566: * @param newPriority the new value of priority.
0567: * @see #getPaPriority
0568: */
0569: protected void setPaPriority(Priority newPriority) {
0570: paPriority = newPriority;
0571: }
0572:
0573: /**
0574: * The getter method implementation for the persistent
0575: * attribute <code>typedState</code>.
0576: *
0577: * @return the value of typedState.
0578: * @see #setPaTypedState
0579: */
0580: protected State getPaTypedState() {
0581: return paTypedState;
0582: }
0583:
0584: /**
0585: * The getter method implementation for the persistent
0586: * attribute <code>lastStateTime</code>.
0587: *
0588: * @return the value of lastStateTime.
0589: * @see #setPaLastStateTime
0590: */
0591: protected Date getPaLastStateTime() {
0592: return paLastStateTime;
0593: }
0594:
0595: /**
0596: * The setter method implementation for the persistent
0597: * attribute <code>lastStateTime</code>.
0598: *
0599: * @param newLastStateTime the new value of lastStateTime.
0600: * @see #getPaLastStateTime
0601: */
0602: protected void setPaLastStateTime(Date newLastStateTime) {
0603: paLastStateTime = newLastStateTime;
0604: }
0605:
0606: /**
0607: * The setter method implementation for the persistent
0608: * attribute <code>typedState</code>.
0609: *
0610: * @param newTypedState the new value of typedState.
0611: * @see #getPaTypedState
0612: */
0613: protected void setPaTypedState(State newTypedState) {
0614: paTypedState = newTypedState;
0615: }
0616:
0617: /**
0618: * The getter method implementation for the persistent
0619: * attribute <code>startMode</code>.
0620: *
0621: * @return the value of startMode.
0622: * @see #setPaStartMode
0623: */
0624: protected StartFinishMode getPaStartMode() {
0625: return paStartMode;
0626: }
0627:
0628: /**
0629: * The setter method implementation for the persistent
0630: * attribute <code>startMode</code>.
0631: *
0632: * @param newStartMode the new value of startMode.
0633: * @see #getPaStartMode
0634: */
0635: protected void setPaStartMode(StartFinishMode newStartMode) {
0636: paStartMode = newStartMode;
0637: }
0638:
0639: /**
0640: * The getter method implementation for the persistent
0641: * attribute <code>finishMode</code>.
0642: *
0643: * @return the value of finishMode.
0644: * @see #setPaFinishMode
0645: */
0646: protected StartFinishMode getPaFinishMode() {
0647: return paFinishMode;
0648: }
0649:
0650: /**
0651: * The setter method implementation for the persistent
0652: * attribute <code>finishMode</code>.
0653: *
0654: * @param newFinishMode the new value of finishMode.
0655: * @see #getPaFinishMode
0656: */
0657: protected void setPaFinishMode(StartFinishMode newFinishMode) {
0658: paFinishMode = newFinishMode;
0659: }
0660:
0661: /**
0662: * The getter method implementation for the persistent
0663: * attribute <code>joinMode</code>.
0664: *
0665: * @return the value of joinMode.
0666: * @see #setPaJoinMode
0667: */
0668: protected JoinAndSplitMode getPaJoinMode() {
0669: return paJoinMode;
0670: }
0671:
0672: /**
0673: * The setter method implementation for the persistent
0674: * attribute <code>joinMode</code>.
0675: *
0676: * @param newJoinMode the new value of joinMode.
0677: * @see #getPaJoinMode
0678: */
0679: protected void setPaJoinMode(JoinAndSplitMode newJoinMode) {
0680: paJoinMode = newJoinMode;
0681: }
0682:
0683: /**
0684: * The getter method implementation for the persistent
0685: * attribute <code>splitMode</code>.
0686: *
0687: * @return the value of splitMode.
0688: * @see #setPaSplitMode
0689: */
0690: protected JoinAndSplitMode getPaSplitMode() {
0691: return paSplitMode;
0692: }
0693:
0694: /**
0695: * The setter method implementation for the persistent
0696: * attribute <code>splitMode</code>.
0697: *
0698: * @param newSplitMode the new value of splitMode.
0699: * @see #getPaSplitMode
0700: */
0701: protected void setPaSplitMode(JoinAndSplitMode newSplitMode) {
0702: paSplitMode = newSplitMode;
0703: }
0704:
0705: /**
0706: * The getter method implementation for the persistent
0707: * attribute <code>executor</code>.
0708: *
0709: * @return the value of executor.
0710: * @see #setPaExecStat
0711: */
0712: protected Integer getPaExecStat() {
0713: return paExecutor;
0714: }
0715:
0716: /**
0717: * The getter method implementation for the persistent
0718: * attribute <code>performer</code>.
0719: *
0720: * @return the value of performer.
0721: * @see #setPaPerformer
0722: */
0723: protected String getPaPerformer() {
0724: return paPerformer;
0725: }
0726:
0727: /**
0728: * The setter method implementation for the persistent
0729: * attribute <code>performer</code>.
0730: *
0731: * @param newPerformer the new value of performer.
0732: * @see #getPaPerformer
0733: */
0734: protected void setPaPerformer(String newPerformer) {
0735: paPerformer = newPerformer;
0736: }
0737:
0738: /**
0739: * The setter method implementation for the persistent
0740: * attribute <code>executor</code>.
0741: *
0742: * @param newExecutor the new value of executor.
0743: * @see #getPaExecStat
0744: */
0745: protected void setPaExecStat(Integer newExecutor) {
0746: paExecutor = newExecutor;
0747: }
0748:
0749: /**
0750: * The getter method implementation for the persistent
0751: * attribute <code>tools</code>.
0752: *
0753: * @return the value of tools.
0754: * @see #setPaActImpl
0755: */
0756: protected Implementation[] getPaActImpl() {
0757: return paActImpl;
0758: }
0759:
0760: /**
0761: * The setter method implementation for the persistent
0762: * attribute <code>tools</code>.
0763: *
0764: * @param newTools the new value of tools.
0765: * @see #getPaActImpl
0766: */
0767: protected void setPaActImpl(Implementation[] newTools) {
0768: paActImpl = newTools;
0769: }
0770:
0771: /**
0772: * The getter method implementation for the persistent
0773: * attribute <code>threadInfo</code>.
0774: *
0775: * @see #setPaThreadInfo
0776: * @return the value of threadInfo.
0777: */
0778: protected ThreadInfo getPaThreadInfo() {
0779: return paThreadInfo;
0780: }
0781:
0782: /**
0783: * The setter method implementation for the persistent
0784: * attribute <code>threadInfo</code>.
0785: *
0786: * @param newThreadInfo the new value of threadInfo.
0787: * @see #getPaThreadInfo
0788: */
0789: protected void setPaThreadInfo(ThreadInfo newThreadInfo) {
0790: paThreadInfo = newThreadInfo;
0791: }
0792:
0793: /**
0794: * Describe <code>getPaActivityElement</code> method here.
0795: *
0796: * @return an <code>Element</code> value
0797: */
0798: protected Element getPaActivityElement() {
0799: return null;
0800: }
0801:
0802: /**
0803: * The getter method implementation for the persistent
0804: * attribute <code>Subflow</code>.
0805: *
0806: * @see #setPaSubflow
0807: * @return the value of Subflow.
0808: */
0809: protected String getPaSubflow() {
0810: return paSubflow;
0811: }
0812:
0813: /**
0814: * The setter method implementation for the persistent
0815: * attribute <code>Subflow</code>.
0816: *
0817: * @param newSubflow the new value of Subflow.
0818: * @see #getPaSubflow
0819: */
0820: protected void setPaSubflow(String newSubflow) {
0821: paSubflow = newSubflow;
0822: }
0823:
0824: /**
0825: * The getter method implementation for the persistent
0826: * attribute <code>deadlines</code>.
0827: *
0828: * @see #setPaDeadlines
0829: * @return the value of deadlines.
0830: */
0831: protected List getPaDeadlines() {
0832: return paDeadlines;
0833: }
0834:
0835: /**
0836: * The setter method implementation for the persistent
0837: * attribute <code>deadlines</code>.
0838: *
0839: * @param newDeadlines the new value of deadlines.
0840: * @see #getPaDeadlines
0841: */
0842: protected void setPaDeadlines(List newDeadlines) {
0843: paDeadlines = newDeadlines;
0844: }
0845:
0846: /**
0847: * The getter method implementation for the persistent
0848: * attribute <code>startTime</code>.
0849: *
0850: * @see #setPaStartTime
0851: * @return the value of startTime.
0852: */
0853: protected Date getPaStartTime() {
0854: return paStartTime;
0855: }
0856:
0857: /**
0858: * The setter method implementation for the persistent
0859: * attribute <code>startTime</code>.
0860: *
0861: * @param newStartTime the new value of startTime.
0862: * @see #getPaStartTime
0863: */
0864: protected void setPaStartTime(Date newStartTime) {
0865: paStartTime = newStartTime;
0866: }
0867:
0868: /**
0869: * The getter method implementation for the persistent
0870: * attribute <code>suspendStart</code>.
0871: *
0872: * @see #setPaSuspendStart
0873: * @return the value of suspendStart.
0874: */
0875: protected Date getPaSuspendStart() {
0876: return paSuspendStart;
0877: }
0878:
0879: /**
0880: * The setter method implementation for the persistent
0881: * attribute <code>suspendStart</code>.
0882: *
0883: * @param newSuspendStart the new value of suspendStart.
0884: * @see #getPaSuspendStart
0885: */
0886: protected void setPaSuspendStart(Date newSuspendStart) {
0887: paSuspendStart = newSuspendStart;
0888: }
0889:
0890: /**
0891: * The getter method implementation for the persistent
0892: * attribute <code>suspendAccum</code>.
0893: *
0894: * @see #setPaSuspendAccum
0895: * @return the value of suspendAccum.
0896: */
0897: protected long getPaSuspendAccum() {
0898: return paSuspendAccum;
0899: }
0900:
0901: /**
0902: * The setter method implementation for the persistent
0903: * attribute <code>suspendAccum</code>.
0904: *
0905: * @param newSuspendAccum the new value of suspendAccum.
0906: * @see #getPaSuspendAccum
0907: */
0908: protected void setPaSuspendAccum(long newSuspendAccum) {
0909: paSuspendAccum = newSuspendAccum;
0910: }
0911:
0912: /**
0913: * The getter method implementation for the persistent
0914: * attribute <code>pendingException</code>.
0915: *
0916: * @see #setPaPendingException
0917: * @return the value of suspendAccum.
0918: */
0919: protected String getPaPendingException() {
0920: return paPendingException;
0921: }
0922:
0923: /**
0924: * The setter method implementation for the persistent
0925: * attribute <code>pendingException</code>.
0926: *
0927: * @param newPendingException the new value of suspendAccum.
0928: * @see #getPaPendingException
0929: */
0930: protected void setPaPendingException(String newPendingException) {
0931: paPendingException = newPendingException;
0932: }
0933:
0934: /**
0935: * The getter method for the persistent flag
0936: * <code>pendingExceptionIsFromBlock</code>.
0937: *
0938: * @return the value of the flag.
0939: * @see #setPaPendingExceptionIsFromBlock
0940: */
0941: protected boolean getPaPendingExceptionIsFromBlock() {
0942: return paPendingExceptionIsFromBlock;
0943: }
0944:
0945: /**
0946: * The setter method for the persistent flags
0947: * <code>pendingExceptionIsFromBlock</code>.
0948: *
0949: * @param newValue the new value of the flag.
0950: * @see #getPaPendingExceptionIsFromBlock
0951: */
0952: protected void setPaPendingExceptionIsFromBlock(boolean newValue) {
0953: paPendingExceptionIsFromBlock = newValue;
0954: }
0955:
0956: /**
0957: * The getter method implementation for the persistent
0958: * attribute <code>blockActivity</code>.
0959: *
0960: * @see #setPaBlockActivity
0961: * @return the value of blockActivity.
0962: */
0963: protected Long getPaBlockActivity() {
0964: return paBlockActivity;
0965: }
0966:
0967: /**
0968: * The setter method implementation for the persistent attribute
0969: * <code>blockActivity</code>. May only be used in base class'
0970: * init.
0971: *
0972: * @param newBlockActivity the new value of blockActivity.
0973: * @see #getPaBlockActivity
0974: */
0975: protected void setPaBlockActivity(Long newBlockActivity) {
0976: paBlockActivity = newBlockActivity;
0977: }
0978:
0979: /**
0980: * The getter method implementation for the persistent
0981: * attribute <code>waitOnProc</code>.
0982: *
0983: * @see #setPaWaitOnProc
0984: * @return the value of waitOnProc.
0985: */
0986: protected Long getPaWaitOnProc() {
0987: return paWaitOnProc;
0988: }
0989:
0990: /**
0991: * The setter method implementation for the persistent
0992: * attribute <code>waitOnProc</code>.
0993: *
0994: * @param newWaitOnProc the new value of waitingOn.
0995: * @see #getPaWaitOnProc
0996: */
0997: protected void setPaWaitOnProc(Long newWaitOnProc) {
0998: paWaitOnProc = newWaitOnProc;
0999: }
1000:
1001: /**
1002: * The getter method implementation for the persistent
1003: * attribute <code>waitOnChan</code>.
1004: *
1005: * @see #setPaWaitOnChan
1006: * @return the value of waitOnChan.
1007: */
1008: protected String getPaWaitOnChan() {
1009: return paWaitOnChan;
1010: }
1011:
1012: /**
1013: * The setter method implementation for the persistent
1014: * attribute <code>waitOnChan</code>.
1015: *
1016: * @param newWaitOnChan the new value of waitingOn.
1017: * @see #getPaWaitOnChan
1018: */
1019: protected void setPaWaitOnChan(String newWaitOnChan) {
1020: paWaitOnChan = newWaitOnChan;
1021: }
1022:
1023: /**
1024: * The getter method implementation for the persistent
1025: * attribute <code>Debug</code>.
1026: *
1027: * @see #setPaDebug
1028: * @return the value of Debug.
1029: */
1030: protected boolean getPaDebug() {
1031: return paDebug;
1032: }
1033:
1034: /**
1035: * The setter method implementation for the persistent
1036: * attribute <code>Debug</code>.
1037: *
1038: * @param newDebug the new value of Debug.
1039: * @see #getPaDebug
1040: */
1041: protected void setPaDebug(boolean newDebug) {
1042: paDebug = newDebug;
1043: }
1044:
1045: /**
1046: * The getter method implementation for the persistent
1047: * attribute <code>subStateBackup</code>.
1048: *
1049: * @see #setPaSubStateBackup
1050: * @return the value of subStateBackup.
1051: */
1052: protected int getPaSubStateBackup() {
1053: return paSubStateBackup;
1054: }
1055:
1056: /**
1057: * The setter method implementation for the persistent
1058: * attribute <code>subStateBackup</code>.
1059: *
1060: * @param newSubStateBackup the new value of subStateBackup.
1061: * @see #getPaSubStateBackup
1062: */
1063: protected void setPaSubStateBackup(int newSubStateBackup) {
1064: paSubStateBackup = newSubStateBackup;
1065: }
1066:
1067: /**
1068: * The getter method implementation for the persistent
1069: * attribute <code>deferChoiceOnSplit</code>.
1070: *
1071: * @see #setPaDeferChoiceOnSplit
1072: * @return the value of deferChoiceOnSplit.
1073: */
1074: protected boolean getPaDeferChoiceOnSplit() {
1075: return paDeferChoiceOnSplit;
1076: }
1077:
1078: /**
1079: * The setter method implementation for the persistent
1080: * attribute <code>deferChoiceOnSplit</code>.
1081: *
1082: * @param newDeferChoiceOnSplit the new value of deferChoiceOnSplit.
1083: * @see #getPaDeferChoiceOnSplit
1084: */
1085: protected void setPaDeferChoiceOnSplit(boolean newDeferChoiceOnSplit) {
1086: paDeferChoiceOnSplit = newDeferChoiceOnSplit;
1087: }
1088:
1089: /**
1090: * The getter method implementation for the persistent
1091: * attribute <code>preliminaryElected</code>.
1092: *
1093: * @see #setPaPreliminaryChosen
1094: * @return the value of preliminaryElected.
1095: */
1096: protected boolean getPaPreliminarilyChosen() {
1097: return paPreliminaryChosen;
1098: }
1099:
1100: /**
1101: * The setter method implementation for the persistent
1102: * attribute <code>preliminaryElected</code>.
1103: *
1104: * @param newPreliminaryChosen the new value of preliminaryElected.
1105: * @see #getPaPreliminaryChosen
1106: */
1107: protected void setPaPreliminarilyChosen(boolean newPreliminaryChosen) {
1108: paPreliminaryChosen = newPreliminaryChosen;
1109: }
1110:
1111: /**
1112: * The getter method implementation for the persistent
1113: * attribute <code>noAssignments</code>.
1114: *
1115: * @see #setPaNoAssignments
1116: * @return the value of noAssignments.
1117: */
1118: protected boolean getPaNoAssignments() {
1119: return paNoAssignments;
1120: }
1121:
1122: /**
1123: * The setter method implementation for the persistent
1124: * attribute <code>noAssignments</code>.
1125: *
1126: * @param newNoAssignments the new value of noAssignments.
1127: * @see #getPaNoAssignments
1128: */
1129: protected void setPaNoAssignments(boolean newNoAssignments) {
1130: paNoAssignments = newNoAssignments;
1131: }
1132:
1133: /**
1134: * The getter method implementation for the persistent
1135: * attribute <code>auditEventSelection</code>.
1136: *
1137: * @see #setPaAuditEventSelection
1138: * @return the value of auditEventSelection.
1139: */
1140: protected int getPaAuditEventSelection() {
1141: return paAuditEventSelection;
1142: }
1143:
1144: /**
1145: * The setter method implementation for the persistent
1146: * attribute <code>auditEventSelection</code>.
1147: *
1148: * @param newAuditEventSelection the new value of auditEventSelection.
1149: * @see #getPaAuditEventSelection
1150: */
1151: protected void setPaAuditEventSelection(int newAuditEventSelection) {
1152: paAuditEventSelection = newAuditEventSelection;
1153: }
1154:
1155: /**
1156: * The getter method implementation for the persistent
1157: * attribute <code>storeAuditEvents</code>.
1158: *
1159: * @see #setPaStoreAuditEvents
1160: * @return the value of storeAuditEvents.
1161: */
1162: protected boolean getPaStoreAuditEvents() {
1163: return paStoreAuditEvents;
1164: }
1165:
1166: /**
1167: * The setter method implementation for the persistent
1168: * attribute <code>storeAuditEvents</code>.
1169: *
1170: * @param newStoreAuditEvents the new value of storeAuditEvents.
1171: * @see #getPaStoreAuditEvents
1172: */
1173: protected void setPaStoreAuditEvents(boolean newStoreAuditEvents) {
1174: paStoreAuditEvents = newStoreAuditEvents;
1175: }
1176:
1177: /* (non-Javadoc)
1178: * Comment copied from interface or superclass.
1179: */
1180: public boolean isMemberOfPerformers(WfProcess member)
1181: throws RemoteException {
1182: throw new UnsupportedOperationException();
1183: }
1184:
1185: }
|