01: /*
02: * Created on Nov 25, 2005
03: */
04: package uk.org.ponder.rsf.flow;
05:
06: import java.io.Serializable;
07:
08: /** Used to hold the ID of the Flow that is governing the current request
09: * cycle. We cannot use a simple String since this would break the reference
10: * chain when it was assigned to.
11: * <p>The value of the held String is set when the relevant FlowActionProxyBean
12: * is sent the "start" message, and it will be persisted across the flow
13: * by the normal means of the StatePreservationManager, using whatever
14: * Strategy is specified for this bean.
15: * <p>The value of the string is READ by the ARIResolver which will return
16: * a suitably initialised FlowLite ARI when requested.
17: * //TODO: Think more carefully about any other beans which may be time-dependent
18: * WRT. state restoration.
19: * @author Antranig Basman (antranig@caret.cam.ac.uk)
20: *
21: */
22:
23: public class FlowIDHolder implements Serializable {
24: // two flow-scoped members recording the flow coordinates
25: private String flowID;
26: private String flowStateID;
27: private String flowtoken;
28: // a request-scoped member allowing fine tracking of the flow state per request.
29: private String requestFlowStateID;
30:
31: public String toString() {
32: return "Flow ID " + getFlowID() + " flowStateID "
33: + getFlowStateID() + " flowtoken " + getFlowToken()
34: + " requestFlowStateID " + getRequestFlowStateID();
35: }
36:
37: public boolean isEmpty() {
38: return getFlowID() == null && getFlowStateID() == null
39: && getFlowToken() == null
40: && getRequestFlowStateID() == null;
41: }
42:
43: public void setFlowID(String flowID) {
44: this .flowID = flowID;
45: }
46:
47: public String getFlowID() {
48: return flowID;
49: }
50:
51: public void setFlowStateID(String flowStateID) {
52: this .flowStateID = flowStateID;
53: }
54:
55: public String getFlowStateID() {
56: return flowStateID;
57: }
58:
59: public void setFlowToken(String flowtoken) {
60: this .flowtoken = flowtoken;
61: }
62:
63: public String getFlowToken() {
64: return flowtoken;
65: }
66:
67: public void setRequestFlowStateID(String requestFlowStateID) {
68: this .requestFlowStateID = requestFlowStateID;
69: }
70:
71: public String getRequestFlowStateID() {
72: return requestFlowStateID;
73: }
74: }
|