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
19 package org.codehaus.activemq.message;
20
21 import org.codehaus.activemq.management.JMSDestinationStats;
22 import org.codehaus.activemq.management.JMSQueueStatsImpl;
23
24 import javax.jms.Destination;
25 import javax.jms.Queue;
26
27
28 /***
29 * A <CODE>Queue</CODE> object encapsulates a provider-specific queue name.
30 * It is the way a client specifies the identity of a queue to JMS API methods.
31 * For those methods that use a <CODE>Destination</CODE> as a parameter, a
32 * <CODE>Queue</CODE> object used as an argument. For example, a queue can
33 * be used to create a <CODE>MessageConsumer</CODE> and a
34 * <CODE>MessageProducer</CODE> by calling:
35 * <UL>
36 * <LI> <CODE>Session.CreateConsumer(Destination destination)</CODE>
37 * <LI> <CODE>Session.CreateProducer(Destination destination)</CODE>
38 * <p/>
39 * </UL>
40 * <p/>
41 * <P>The actual length of time messages are held by a queue and the
42 * consequences of resource overflow are not defined by the JMS API.
43 *
44 * @see javax.jms.Session#createConsumer(javax.jms.Destination)
45 * @see javax.jms.Session#createProducer(javax.jms.Destination)
46 * @see javax.jms.Session#createQueue(String)
47 * @see javax.jms.QueueSession#createQueue(String)
48 */
49
50 public class ActiveMQQueue extends ActiveMQDestination implements Queue {
51
52 /***
53 * Default constructor for an ActiveMQQueue Destination
54 */
55 public ActiveMQQueue() {
56 super();
57 }
58
59 /***
60 * Construct a named ActiveMQQueue Destination
61 *
62 * @param name
63 */
64
65 public ActiveMQQueue(String name) {
66 super(name);
67 }
68
69 /***
70 * Gets the name of this queue.
71 * <p/>
72 * <P>Clients that depend upon the name are not portable.
73 *
74 * @return the queue name
75 */
76
77 public String getQueueName() {
78 return super.getPhysicalName();
79 }
80
81 /***
82 * @return Returns the Destination type
83 */
84
85 public int getDestinationType() {
86 return ACTIVEMQ_QUEUE;
87 }
88
89 protected Destination createDestination(String name) {
90 return new ActiveMQQueue(name);
91 }
92
93 protected JMSDestinationStats createDestinationStats() {
94 return new JMSQueueStatsImpl();
95 }
96
97 }