KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > nightlabs > ipanema > jdo > cache > SubscriptionChangeRequest


1 /*
2  * Created on Jul 28, 2005
3  */

4 package com.nightlabs.ipanema.jdo.cache;
5
6
7 /**
8  * @author Marco Schulze - marco at nightlabs dot de
9  */

10 public class SubscriptionChangeRequest
11 {
12     public static final byte ACTION_ADD = 0;
13     public static final byte ACTION_REMOVE = 1;
14
15     private static String JavaDoc[] ACTIONS = new String JavaDoc[] {"add", "remove"};
16
17     private byte action;
18     private Object JavaDoc objectID;
19     private long createDT = System.currentTimeMillis();
20     private long delayMSec;
21
22     /**
23      * @param action One of {@link #ACTION_ADD} or {@link #ACTION_REMOVE}
24      * @param objectID The objectID for which to either add or remove a listener.
25      * @param delayMSec The action can be done immediately (means as soon as possible,
26      * because it's async and periodical) or it can be delayed for a certain time
27      * specified in millisec.
28      */

29     public SubscriptionChangeRequest(byte action, Object JavaDoc objectID, long delayMSec)
30     {
31         if (action != ACTION_ADD && action != ACTION_REMOVE)
32             throw new IllegalArgumentException JavaDoc("action \""+action+"\" invalid! Must be either ACTION_ADD=\""+ACTION_ADD+"\" or ACTION_REMOVE=\""+ACTION_REMOVE+"\"");
33
34         this.action = action;
35
36         if (null == objectID)
37             throw new NullPointerException JavaDoc("objectID");
38         this.objectID = objectID;
39
40         if (delayMSec < 0)
41             throw new IllegalArgumentException JavaDoc("delayMSec < 0!!! Must be >= 0!");
42         this.delayMSec = delayMSec;
43     }
44
45     /**
46      * @return Returns the action.
47      */

48     public byte getAction()
49     {
50         return action;
51     }
52     /**
53      * @return Returns the objectID.
54      */

55     public Object JavaDoc getObjectID()
56     {
57         return objectID;
58     }
59     /**
60      * @return Returns the createDT.
61      */

62     public long getCreateDT()
63     {
64         return createDT;
65     }
66     /**
67      * @return Returns the delayMSec.
68      */

69     public long getDelayMSec()
70     {
71         return delayMSec;
72     }
73     /**
74      * @return Returns the sum of <tt>createDT</tt> and <tt>delayMSec</tt>.
75      */

76     public long getScheduledActionDT()
77     {
78         return createDT + delayMSec;
79     }
80
81     private transient String JavaDoc thisString = null;
82     /**
83      * @see java.lang.Object#toString()
84      */

85     public String JavaDoc toString()
86     {
87         if (thisString == null) {
88             StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
89             sb.append(this.getClass().getName());
90             sb.append('{');
91             sb.append("action=");
92             sb.append(ACTIONS[action]);
93             sb.append(';');
94             sb.append("objectID=");
95             sb.append(objectID);
96             sb.append(';');
97             sb.append("delayMSec=");
98             sb.append(delayMSec);
99             sb.append('}');
100
101             thisString = sb.toString();
102         }
103
104         return thisString;
105     }
106 }
107
Popular Tags