1 4 package com.nightlabs.ipanema.jdo.cache; 5 6 7 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 [] ACTIONS = new String [] {"add", "remove"}; 16 17 private byte action; 18 private Object objectID; 19 private long createDT = System.currentTimeMillis(); 20 private long delayMSec; 21 22 29 public SubscriptionChangeRequest(byte action, Object objectID, long delayMSec) 30 { 31 if (action != ACTION_ADD && action != ACTION_REMOVE) 32 throw new IllegalArgumentException ("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 ("objectID"); 38 this.objectID = objectID; 39 40 if (delayMSec < 0) 41 throw new IllegalArgumentException ("delayMSec < 0!!! Must be >= 0!"); 42 this.delayMSec = delayMSec; 43 } 44 45 48 public byte getAction() 49 { 50 return action; 51 } 52 55 public Object getObjectID() 56 { 57 return objectID; 58 } 59 62 public long getCreateDT() 63 { 64 return createDT; 65 } 66 69 public long getDelayMSec() 70 { 71 return delayMSec; 72 } 73 76 public long getScheduledActionDT() 77 { 78 return createDT + delayMSec; 79 } 80 81 private transient String thisString = null; 82 85 public String toString() 86 { 87 if (thisString == null) { 88 StringBuffer sb = new StringBuffer (); 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 |