1 /***
2 *
3 * Copyright 2004 Protique Ltd
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 package org.codehaus.activemq.message;
19
20 /***
21 * Describes a Message consumer
22 *
23 * @version $Revision: 1.8 $
24 */
25 public class ConsumerInfo extends AbstractPacket {
26 private ActiveMQDestination destination;
27 private String consumerId;
28 private String clientId;
29 private String sessionId;
30 private String consumerName;
31 private String selector;
32 private long startTime;
33 private boolean started;
34 private int consumerNo;
35 private boolean noLocal;
36 private boolean browser;
37 private int prefetchNumber = 100;
38
39 /***
40 * @return Returns the consumerId.
41 */
42 public String getConsumerId() {
43 return consumerId;
44 }
45
46 /***
47 * @param consumerId The consumerId to set.
48 */
49 public void setConsumerId(String consumerId) {
50 this.consumerId = consumerId;
51 }
52
53 /***
54 * @return Returns the sessionId.
55 */
56 public String getSessionId() {
57 return sessionId;
58 }
59
60 /***
61 * @param sessionId The sessionId to set.
62 */
63 public void setSessionId(String sessionId) {
64 this.sessionId = sessionId;
65 }
66
67 /***
68 * Return the type of Packet
69 *
70 * @return integer representation of the type of Packet
71 */
72 public int getPacketType() {
73 return CONSUMER_INFO;
74 }
75
76 /***
77 * Test for equality
78 *
79 * @param obj object to test
80 * @return true if equivalent
81 */
82 public boolean equals(Object obj) {
83 boolean result = false;
84 if (obj != null && obj instanceof ConsumerInfo) {
85 ConsumerInfo that = (ConsumerInfo) obj;
86 result = this.consumerId.equals(that.consumerId);
87 }
88 return result;
89 }
90
91 /***
92 * @return hash code for instance
93 */
94 public int hashCode() {
95 return this.consumerId.hashCode();
96 }
97
98 /***
99 * @return a pretty print
100 */
101
102 public String toString() {
103 return super.toString() + " consumerId: " + consumerId + " clientId: " + clientId + " consumerName: " + consumerName + " destination: " + destination;
104 }
105
106 /***
107 * @return Returns the clientId.
108 */
109 public String getClientId() {
110 return this.clientId;
111 }
112
113 /***
114 * @param newClientId The clientId to set.
115 */
116 public void setClientId(String newClientId) {
117 this.clientId = newClientId;
118 }
119
120 /***
121 * @return Returns the destination.
122 */
123 public ActiveMQDestination getDestination() {
124 return this.destination;
125 }
126
127 /***
128 * @param newDestination The destination to set.
129 */
130 public void setDestination(ActiveMQDestination newDestination) {
131 this.destination = newDestination;
132 }
133
134 /***
135 * @return Returns the selector.
136 */
137 public String getSelector() {
138 return this.selector;
139 }
140
141 /***
142 * @param newSelector The selector to set.
143 */
144 public void setSelector(String newSelector) {
145 this.selector = newSelector;
146 }
147
148 /***
149 * @return Returns the started.
150 */
151 public boolean isStarted() {
152 return this.started;
153 }
154
155 /***
156 * @param flag to indicate if started
157 */
158 public void setStarted(boolean flag) {
159 this.started = flag;
160 }
161
162 /***
163 * @return Returns the startTime.
164 */
165 public long getStartTime() {
166 return this.startTime;
167 }
168
169 /***
170 * @param newStartTime The startTime to set.
171 */
172 public void setStartTime(long newStartTime) {
173 this.startTime = newStartTime;
174 }
175
176 /***
177 * @return Returns the consumerNo.
178 */
179 public int getConsumerNo() {
180 return this.consumerNo;
181 }
182
183 /***
184 * @param newConsumerNo The consumerNo to set.
185 */
186 public void setConsumerNo(int newConsumerNo) {
187 this.consumerNo = newConsumerNo;
188 }
189
190 /***
191 * @return Returns the consumer name.
192 */
193 public String getConsumerName() {
194 return this.consumerName;
195 }
196
197 /***
198 * @param newconsumerName The consumerName to set.
199 */
200 public void setConsumerName(String newconsumerName) {
201 this.consumerName = newconsumerName;
202 }
203
204 /***
205 * @return Returns true if the Consumer is a durable Topic subscriber
206 */
207 public boolean isDurableTopic() {
208 return this.destination.isTopic() && !this.destination.isTemporary() && this.consumerName != null
209 && this.consumerName.length() > 0;
210 }
211
212 /***
213 * @return Returns the noLocal.
214 */
215 public boolean isNoLocal() {
216 return noLocal;
217 }
218
219 /***
220 * @param noLocal The noLocal to set.
221 */
222 public void setNoLocal(boolean noLocal) {
223 this.noLocal = noLocal;
224 }
225
226 /***
227 * @return Returns the browser.
228 */
229 public boolean isBrowser() {
230 return browser;
231 }
232
233 /***
234 * @param browser The browser to set.
235 */
236 public void setBrowser(boolean browser) {
237 this.browser = browser;
238 }
239
240 /***
241 * @return Returns the prefetchNumber.
242 */
243 public int getPrefetchNumber() {
244 return prefetchNumber;
245 }
246
247 /***
248 * @param prefetchNumber The prefetchNumber to set.
249 */
250 public void setPrefetchNumber(int prefetchNumber) {
251 this.prefetchNumber = prefetchNumber;
252 }
253
254
255 /***
256 * Creates a primary key for the consumer info which uniquely
257 * describes the consumer using a combination of clientID and
258 * consumerName
259 *
260 * @return
261 */
262 public String getConsumerKey() {
263 return "[" + getClientId() + ":" + getConsumerName() + "]";
264 }
265 }