Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
PBStateEvent |
|
| 3.3333333333333335;3.333 | ||||
PBStateEvent$Type |
|
| 3.3333333333333335;3.333 |
1 | package org.apache.ojb.broker; | |
2 | ||
3 | /* Copyright 2003-2005 The Apache Software Foundation | |
4 | * | |
5 | * Licensed under the Apache License, Version 2.0 (the "License"); | |
6 | * you may not use this file except in compliance with the License. | |
7 | * You may obtain a copy of the License at | |
8 | * | |
9 | * http://www.apache.org/licenses/LICENSE-2.0 | |
10 | * | |
11 | * Unless required by applicable law or agreed to in writing, software | |
12 | * distributed under the License is distributed on an "AS IS" BASIS, | |
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
14 | * See the License for the specific language governing permissions and | |
15 | * limitations under the License. | |
16 | */ | |
17 | ||
18 | import org.apache.commons.lang.builder.ToStringBuilder; | |
19 | ||
20 | /** | |
21 | * The <code>PBStateEvent</code> encapsulates information about | |
22 | * the life-cycle/transaction demarcation of the used {@link org.apache.ojb.broker.PersistenceBroker} | |
23 | * instance. | |
24 | * | |
25 | * @author Armin Waibel | |
26 | * @version $Id: PBStateEvent.java,v 1.1 2007-08-24 22:17:35 ewestfal Exp $ | |
27 | */ | |
28 | public final class PBStateEvent extends PersistenceBrokerEvent | |
29 | { | |
30 | /** Denotes an event that happens before the broker will be closed. */ | |
31 | public static final int KEY_BEFORE_CLOSE = 1; | |
32 | /** Denotes an event that happens before a transaction will be started. */ | |
33 | public static final int KEY_BEFORE_BEGIN = 2; | |
34 | /** Denotes an event that happens before a transaction will be comitted. */ | |
35 | public static final int KEY_BEFORE_COMMIT = 3; | |
36 | /** Denotes an event that happens before a transaction will be rolled back. */ | |
37 | public static final int KEY_BEFORE_ROLLBACK = 4; | |
38 | /** Denotes an event that happens after a transaction was started. */ | |
39 | public static final int KEY_AFTER_BEGIN = 5; | |
40 | /** Denotes an event that happens after a transaction was comitted. */ | |
41 | public static final int KEY_AFTER_COMMIT = 6; | |
42 | /** Denotes an event that happens after a broker was opened. */ | |
43 | public static final int KEY_AFTER_OPEN = 7; | |
44 | /** Denotes an event that happens after a transaction was rolled back. */ | |
45 | public static final int KEY_AFTER_ROLLBACK = 8; | |
46 | ||
47 | private Type eventType; | |
48 | ||
49 | /** | |
50 | * Creates a new event instance. | |
51 | * | |
52 | * @param broker The broker | |
53 | * @param eventType The type of the event | |
54 | */ | |
55 | public PBStateEvent(PersistenceBroker broker, Type eventType) | |
56 | { | |
57 | super(broker); | |
58 | this.eventType = eventType; | |
59 | } | |
60 | ||
61 | /** | |
62 | * {@inheritDoc} | |
63 | */ | |
64 | public String toString() | |
65 | { | |
66 | ToStringBuilder buf = new ToStringBuilder(this); | |
67 | buf.append("type", eventType.toString()). | |
68 | append("source object", getSource()); | |
69 | return buf.toString(); | |
70 | } | |
71 | ||
72 | /** | |
73 | * Returns the event type. | |
74 | * | |
75 | * @return The event type | |
76 | */ | |
77 | public Type getEventType() | |
78 | { | |
79 | return eventType; | |
80 | } | |
81 | ||
82 | /** | |
83 | * Enum-like class for the event types. | |
84 | */ | |
85 | public static class Type | |
86 | { | |
87 | /** Denotes an event that happens before a transaction will be started. */ | |
88 | public static final Type BEFORE_BEGIN = new Type(KEY_BEFORE_BEGIN); | |
89 | /** Denotes an event that happens after a transaction was started. */ | |
90 | public static final Type AFTER_BEGIN = new Type(KEY_AFTER_BEGIN); | |
91 | /** Denotes an event that happens before a transaction will be comitted. */ | |
92 | public static final Type BEFORE_COMMIT = new Type(KEY_BEFORE_COMMIT); | |
93 | /** Denotes an event that happens after a transaction was comitted. */ | |
94 | public static final Type AFTER_COMMIT = new Type(KEY_AFTER_COMMIT); | |
95 | /** Denotes an event that happens before a transaction will be rolled back. */ | |
96 | public static final Type BEFORE_ROLLBACK = new Type(KEY_BEFORE_ROLLBACK); | |
97 | /** Denotes an event that happens after a transaction was rolled back. */ | |
98 | public static final Type AFTER_ROLLBACK = new Type(KEY_AFTER_ROLLBACK); | |
99 | /** Denotes an event that happens after a broker was opened. */ | |
100 | public static final Type AFTER_OPEN = new Type(KEY_AFTER_OPEN); | |
101 | /** Denotes an event that happens before the broker will be closed. */ | |
102 | public static final Type BEFORE_CLOSE = new Type(KEY_BEFORE_CLOSE); | |
103 | ||
104 | private int type; | |
105 | ||
106 | /** | |
107 | * Creates a new instance. | |
108 | * | |
109 | * @param type The type value | |
110 | */ | |
111 | protected Type(int type) | |
112 | { | |
113 | this.type = type; | |
114 | } | |
115 | ||
116 | /** | |
117 | * {@inheritDoc} | |
118 | */ | |
119 | public final boolean equals(Object obj) | |
120 | { | |
121 | if (obj == this) | |
122 | { | |
123 | return true; | |
124 | } | |
125 | if (!(obj instanceof PBStateEvent)) | |
126 | { | |
127 | return false; | |
128 | } | |
129 | ||
130 | return type == ((Type) obj).type; | |
131 | } | |
132 | ||
133 | /** | |
134 | * {@inheritDoc} | |
135 | */ | |
136 | public final int hashCode() | |
137 | { | |
138 | return type; | |
139 | } | |
140 | ||
141 | /** | |
142 | * Returns the type id. | |
143 | * | |
144 | * @return The type id | |
145 | */ | |
146 | public final int typeId() | |
147 | { | |
148 | return type; | |
149 | } | |
150 | ||
151 | /** | |
152 | * {@inheritDoc} | |
153 | */ | |
154 | public String toString() | |
155 | { | |
156 | return this.getClass().getName() + " [type= " + typeAsName(type) + "]"; | |
157 | } | |
158 | ||
159 | private String typeAsName(int aType) | |
160 | { | |
161 | if (aType == KEY_AFTER_BEGIN) | |
162 | { | |
163 | return "AFTER_BEGIN"; | |
164 | } | |
165 | else if (aType == KEY_AFTER_COMMIT) | |
166 | { | |
167 | return "AFTER_COMMIT"; | |
168 | } | |
169 | else if (aType == KEY_AFTER_OPEN) | |
170 | { | |
171 | return "AFTER_OPEN"; | |
172 | } | |
173 | else if (aType == KEY_AFTER_ROLLBACK) | |
174 | { | |
175 | return "AFTER_ROLLBACK"; | |
176 | } | |
177 | else if (aType == KEY_BEFORE_BEGIN) | |
178 | { | |
179 | return "BEFORE_BEGIN"; | |
180 | } | |
181 | else if (aType == KEY_BEFORE_CLOSE) | |
182 | { | |
183 | return "BEFORE_CLOSE"; | |
184 | } | |
185 | else if (aType == KEY_BEFORE_COMMIT) | |
186 | { | |
187 | return "BEFORE_COMMIT"; | |
188 | } | |
189 | else if (aType == KEY_BEFORE_ROLLBACK) | |
190 | { | |
191 | return "BEFORE_ROLLBACK"; | |
192 | } | |
193 | else | |
194 | { | |
195 | throw new OJBRuntimeException("Could not find type " + aType); | |
196 | } | |
197 | } | |
198 | } | |
199 | } |