KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > ofbiz > minerva > pool > PoolEvent


1 /*
2  * Licensed under the X license (see http://www.x.org/terms.htm)
3  */

4 package org.ofbiz.minerva.pool;
5
6 import java.util.EventObject JavaDoc;
7
8 /**
9  * An event caused by an object in a pool. The event indicates that the
10  * object was used, closed, or had an error occur. The typical response is
11  * to update the last used time in the pool for used events, and return the
12  * object to the pool for closed or error events.
13  *
14  * @author Aaron Mulder (ammulder@alumni.princeton.edu)
15  */

16 public class PoolEvent extends EventObject JavaDoc {
17
18     /**
19      * The object has been closed and should be returned to the pool. Note this
20      * is not a final sort of closing - the object must still be able to be
21      * returned to the pool and reused.
22      */

23     public final static int OBJECT_CLOSED = -8986432;
24     /**
25      * Indicates that an error occured with the object. The object will be
26      * returned to the pool, since there will presumably be an exception
27      * thrown that precludes the client from closing it or returning it
28      * normally. This should not be used for final or destructive errors - the
29      * object must stil be able to be returned to the pool and reused.
30      */

31     public final static int OBJECT_ERROR = -8986433;
32     /**
33      * Indicates that the object was used, and its timestamp should be updated
34      * accordingly (if the pool tracks timestamps).
35      */

36     public final static int OBJECT_USED = -8986434;
37
38     private int type;
39     private boolean catastrophic = false;
40
41     /**
42      * Create a new event.
43      * @param source The source must be the object that was returned from the
44      * getObject method of the pool - the pool will use the source for
45      * some purpose depending on the type, so it cannot be an arbitrary
46      * object.
47      * @param type The event type.
48      */

49     public PoolEvent(Object JavaDoc source, int type) {
50         super(source);
51         if (type != OBJECT_CLOSED && type != OBJECT_ERROR && type != OBJECT_USED)
52             throw new IllegalArgumentException JavaDoc("Invalid event type!");
53         this.type = type;
54     }
55
56     /**
57      * Gets the event type.
58      * @see #OBJECT_CLOSED
59      * @see #OBJECT_USED
60      * @see #OBJECT_ERROR
61      */

62     public int getType() {
63         return type;
64     }
65
66     /**
67      * Gets whether an object error was so bad that the object should not
68      * be reused by the pool. This is meaningful for error events only.
69      */

70     public boolean isCatastrophic() {
71         return catastrophic;
72     }
73
74     /**
75      * Marks this as an error so severe that the object should not be reused by
76      * the pool.
77      */

78     public void setCatastrophic() {
79         catastrophic = true;
80     }
81 }
82
Popular Tags