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 }