org.apache.qpid.client
Class AMQTopic

java.lang.Object
  extended by org.apache.qpid.client.AMQDestination
      extended by org.apache.qpid.client.AMQTopic
All Implemented Interfaces:
Destination, Topic, Referenceable
Direct Known Subclasses:
AMQTemporaryTopic

public class AMQTopic
extends AMQDestination
implements Topic


Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.qpid.client.AMQDestination
AMQDestination.AddressOption, AMQDestination.Binding, AMQDestination.DestSyntax
 
Field Summary
 
Fields inherited from class org.apache.qpid.client.AMQDestination
_address, _addressType, _addrHelper, _assert, _create, _delete, _destSyntax, _exchangeClass, _exchangeName, _isAutoDelete, _isDurable, _isExclusive, _link, _name, _sourceNode, _subject, _targetLink, _targetNode, defaultDestSyntax, QUEUE_TYPE, TOPIC_TYPE, UNKNOWN_TYPE
 
Constructor Summary
  AMQTopic(org.apache.qpid.messaging.Address address)
           
  AMQTopic(AMQConnection conn, String routingKey)
           
  AMQTopic(org.apache.qpid.framing.AMQShortString exchangeName, org.apache.qpid.framing.AMQShortString routingKey)
           
  AMQTopic(org.apache.qpid.framing.AMQShortString exchange, org.apache.qpid.framing.AMQShortString routingKey, org.apache.qpid.framing.AMQShortString queueName)
           
  AMQTopic(org.apache.qpid.framing.AMQShortString exchange, org.apache.qpid.framing.AMQShortString routingKey, org.apache.qpid.framing.AMQShortString queueName, org.apache.qpid.framing.AMQShortString[] bindingKeys)
           
protected AMQTopic(org.apache.qpid.framing.AMQShortString exchangeName, org.apache.qpid.framing.AMQShortString exchangeClass, org.apache.qpid.framing.AMQShortString routingKey, boolean isExclusive, boolean isAutoDelete, org.apache.qpid.framing.AMQShortString queueName, boolean isDurable)
           
protected AMQTopic(org.apache.qpid.framing.AMQShortString exchangeName, org.apache.qpid.framing.AMQShortString exchangeClass, org.apache.qpid.framing.AMQShortString routingKey, boolean isExclusive, boolean isAutoDelete, org.apache.qpid.framing.AMQShortString queueName, boolean isDurable, org.apache.qpid.framing.AMQShortString[] bindingKeys)
           
  AMQTopic(org.apache.qpid.framing.AMQShortString exchangeName, org.apache.qpid.framing.AMQShortString name, boolean isAutoDelete, org.apache.qpid.framing.AMQShortString queueName, boolean isDurable)
           
  AMQTopic(org.apache.qpid.framing.AMQShortString exchangeName, String routingKey)
           
  AMQTopic(org.apache.qpid.url.BindingURL binding)
          Constructor for use in creating a topic using a BindingURL.
  AMQTopic(String address)
           
 
Method Summary
static AMQTopic createDurableTopic(AMQTopic topic, String subscriptionName, AMQConnection connection)
           
 boolean equals(Object o)
           
static org.apache.qpid.framing.AMQShortString getDurableTopicQueueName(String subscriptionName, AMQConnection connection)
           
 org.apache.qpid.framing.AMQShortString getExchangeName()
           
 org.apache.qpid.framing.AMQShortString getRoutingKey()
           
 String getTopicName()
           
 int hashCode()
           
 boolean isNameRequired()
           
 void setQueueName(String queueName)
          Override since the queue is always private and we must ensure it remains null.
 
Methods inherited from class org.apache.qpid.client.AMQDestination
copyDestination, createDestination, createDestination, createDestination, getAddress, getAddressName, getAddressType, getAMQQueueName, getAssert, getBindingKeys, getCreate, getDefaultDestSyntax, getDelete, getDestSyntax, getDestType, getEncodedName, getExchangeClass, getInfoFromBindingURL, getLink, getQueueName, getReference, getSourceNode, getSubject, getTargetNode, isAddressResolved, isAutoDelete, isBrowseOnly, isCheckedForQueueBinding, isDurable, isExchangeExistsChecked, isExclusive, isQueue, isTopic, rebuildTargetAndSourceNodes, setAddress, setAddressName, setAddressResolved, setAddressType, setAssert, setAutoDelete, setBrowseOnly, setCheckedForQueueBinding, setCreate, setDelete, setDestSyntax, setDurable, setExchangeClass, setExchangeExistsChecked, setExchangeName, setLink, setQueueName, setRoutingKey, setSourceNode, setSubject, setTargetNode, stripSyntaxPrefix, toByteEncoding, toString, toURL
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface javax.jms.Topic
toString
 

Constructor Detail

AMQTopic

public AMQTopic(String address)
         throws URISyntaxException
Throws:
URISyntaxException

AMQTopic

public AMQTopic(org.apache.qpid.messaging.Address address)
         throws Exception
Throws:
Exception

AMQTopic

public AMQTopic(org.apache.qpid.url.BindingURL binding)
Constructor for use in creating a topic using a BindingURL.

Parameters:
binding - The binding url object.

AMQTopic

public AMQTopic(org.apache.qpid.framing.AMQShortString exchange,
                org.apache.qpid.framing.AMQShortString routingKey,
                org.apache.qpid.framing.AMQShortString queueName)

AMQTopic

public AMQTopic(org.apache.qpid.framing.AMQShortString exchange,
                org.apache.qpid.framing.AMQShortString routingKey,
                org.apache.qpid.framing.AMQShortString queueName,
                org.apache.qpid.framing.AMQShortString[] bindingKeys)

AMQTopic

public AMQTopic(AMQConnection conn,
                String routingKey)

AMQTopic

public AMQTopic(org.apache.qpid.framing.AMQShortString exchangeName,
                String routingKey)

AMQTopic

public AMQTopic(org.apache.qpid.framing.AMQShortString exchangeName,
                org.apache.qpid.framing.AMQShortString routingKey)

AMQTopic

public AMQTopic(org.apache.qpid.framing.AMQShortString exchangeName,
                org.apache.qpid.framing.AMQShortString name,
                boolean isAutoDelete,
                org.apache.qpid.framing.AMQShortString queueName,
                boolean isDurable)

AMQTopic

protected AMQTopic(org.apache.qpid.framing.AMQShortString exchangeName,
                   org.apache.qpid.framing.AMQShortString exchangeClass,
                   org.apache.qpid.framing.AMQShortString routingKey,
                   boolean isExclusive,
                   boolean isAutoDelete,
                   org.apache.qpid.framing.AMQShortString queueName,
                   boolean isDurable)

AMQTopic

protected AMQTopic(org.apache.qpid.framing.AMQShortString exchangeName,
                   org.apache.qpid.framing.AMQShortString exchangeClass,
                   org.apache.qpid.framing.AMQShortString routingKey,
                   boolean isExclusive,
                   boolean isAutoDelete,
                   org.apache.qpid.framing.AMQShortString queueName,
                   boolean isDurable,
                   org.apache.qpid.framing.AMQShortString[] bindingKeys)
Method Detail

createDurableTopic

public static AMQTopic createDurableTopic(AMQTopic topic,
                                          String subscriptionName,
                                          AMQConnection connection)
                                   throws JMSException
Throws:
JMSException

getDurableTopicQueueName

public static org.apache.qpid.framing.AMQShortString getDurableTopicQueueName(String subscriptionName,
                                                                              AMQConnection connection)
                                                                       throws JMSException
Throws:
JMSException

getTopicName

public String getTopicName()
                    throws JMSException
Specified by:
getTopicName in interface Topic
Throws:
JMSException

getExchangeName

public org.apache.qpid.framing.AMQShortString getExchangeName()
Overrides:
getExchangeName in class AMQDestination

getRoutingKey

public org.apache.qpid.framing.AMQShortString getRoutingKey()
Overrides:
getRoutingKey in class AMQDestination

isNameRequired

public boolean isNameRequired()
Specified by:
isNameRequired in class AMQDestination

setQueueName

public void setQueueName(String queueName)
Override since the queue is always private and we must ensure it remains null. If not, reuse of the topic when registering consumers will make all consumers listen on the same (private) queue rather than getting their own (private) queue.

This is relatively nasty but it is difficult to come up with a more elegant solution, given the requirement in the case on AMQQueue and possibly other AMQDestination subclasses to use the underlying queue name even where it is server generated.


equals

public boolean equals(Object o)
Overrides:
equals in class AMQDestination

hashCode

public int hashCode()
Overrides:
hashCode in class AMQDestination


Licensed to the Apache Software Foundation