org.exolab.jms.client
Class  JmsTopic
java.lang.Object
  |
  +--org.exolab.jms.message.DestinationImpl
        |
        +--org.exolab.jms.client.JmsDestination
              |
              +--org.exolab.jms.client.JmsTopic
- All Implemented Interfaces: 
- java.lang.Cloneable, javax.jms.Destination, java.io.Externalizable, javax.naming.Referenceable, java.io.Serializable, javax.jms.Topic
- Direct Known Subclasses: 
- JmsTemporaryTopic
- public class JmsTopic- extends JmsDestination- implements javax.jms.Topic, java.io.Externalizable, javax.naming.Referenceable
A topic is a destination specific for the puiblish-subscribe messaging
 model. OpenJMS also supports topic hierarchy and wild carding.
- Version: 
- $Revision: 1.12 $ $Date: 2003/08/07 13:32:50 $
- Author: 
- Jim Alateras, Jim Mourikis
- See Also: 
- JmsDestination, Serialized Form
 
| Constructor Summary | 
| JmsTopic()Need a default constructor for the serialization
 | 
| JmsTopic(java.lang.String name)Instantiate an instance of this object with the specified string
 | 
 
| Method Summary | 
|  boolean | equals(java.lang.Object object)
 | 
|  javax.naming.Reference | getReference()
 | 
|  java.lang.String | getTopicName()Return the name of the topic
 | 
|  int | hashCode()
 | 
|  boolean | isWildCard()Check whether this topic represents a wildcard expression.
 | 
| static boolean | isWildCard(java.lang.String topic)A static method which checks a topic to determine whether or not it
 complies to a wildcard definition.
 | 
|  boolean | match(JmsTopic destination)If it is a wildcard check to see that it matches the specified topic.
 | 
|  void | readExternal(java.io.ObjectInput stream)
 | 
|  void | writeExternal(java.io.ObjectOutput stream)
 | 
 
 
 
| Methods inherited from class java.lang.Object | 
| finalize, getClass, notify, notifyAll, wait, wait, wait | 
 
| Methods inherited from interface javax.jms.Topic | 
| toString | 
 
WILDCARD
public static final java.lang.String WILDCARD
ALL_WILDCARD
public static final java.lang.String ALL_WILDCARD
SEPARATOR
public static final java.lang.String SEPARATOR
JmsTopic
public JmsTopic()
- Need a default constructor for the serialization
JmsTopic
public JmsTopic(java.lang.String name)
- Instantiate an instance of this object with the specified string- 
- Parameters:
- name- name of the queue
 
getTopicName
public java.lang.String getTopicName()
                              throws javax.jms.JMSException
- Return the name of the topic- 
- Specified by: 
- getTopicNamein interface- javax.jms.Topic
 
- 
- Returns:
- name        name of  the topic
- Throws:
- javax.jms.JMSException-
 
equals
public boolean equals(java.lang.Object object)
- 
- Overrides:
- equalsin class- java.lang.Object
 
writeExternal
public void writeExternal(java.io.ObjectOutput stream)
                   throws java.io.IOException
- 
- Specified by: 
- writeExternalin interface- java.io.Externalizable
- Overrides:
- writeExternalin class- JmsDestination
 
readExternal
public void readExternal(java.io.ObjectInput stream)
                  throws java.io.IOException,
                         java.lang.ClassNotFoundException
- 
- Specified by: 
- readExternalin interface- java.io.Externalizable
- Overrides:
- readExternalin class- JmsDestination
 
hashCode
public int hashCode()
- 
- Overrides:
- hashCodein class- JmsDestination
 
isWildCard
public boolean isWildCard()
- Check whether this topic represents a wildcard expression.- 
 
- 
- Returns:
- boolean true if the topic contains wildcards
 
isWildCard
public static boolean isWildCard(java.lang.String topic)
- A static method which checks a topic to determine whether or not it
 complies to a wildcard definition.- 
 
- 
- Parameters:
- topic- - the topic to check
- Returns:
- boolean - true if it does
 
match
public boolean match(JmsTopic destination)
- If it is a wildcard check to see that it matches the specified topic.
 if wildcard is **, its a an imediate match for every topic.
 else
  tokenize both the wildcard and the topic.
  if the wildcard has less or equal no of tokens than the topic and
      ends in "**" check tokens
  if both wildcard and topic contain the same no of tokens check tokens
  Otherwise topic and wildcard do not match so return false.
 Note we treat "a.b.c.*.*" and "a.b.c" as not a match at this stage,
 since the wildcard is attempting to match more levels than exist in the
 topic. if this proves to be unpopular with the masses, its a very
 trivial change below to fix this problem.
  Tokens are compared and must either be identical or the wildcard
 token must be a "*" to match at this level. Once a mismatch is detected
 the comparison is stopped and a false returned.
  NOTE: This check assumes both the topic and wildcard topic have both
 already been validated. if the topics are inavlid this test can return
 arbitrary results. 
- 
 
- 
- Parameters:
- destination- The specific topic to match to
- Returns:
- True if the wildcard matches.
 
getReference
public javax.naming.Reference getReference()
- 
- Specified by: 
- getReferencein interface- javax.naming.Referenceable
 
Copyright © 1999-2004 The OpenJMS Group. All Rights Reserved.