# Class Topic

java.lang.Object
com.sun.messaging.AdministeredObject
com.sun.messaging.Destination
com.sun.messaging.BasicTopic
com.sun.messaging.Topic

All Implemented Interfaces:
  `jakarta.jms.Destination, jakarta.jms.Topic, Serializable, Referenceable`

public class Topic extends BasicTopic implements Referenceable
A `Topic` represents an identity of a repository of messages used in the JMS Publish/Subscribe messaging domain.

See Also:
  - `jakarta.jms.Topic`
  - Serialized Form

- ## Field Summary

  ### Fields inherited from class AdministeredObject

  `AO_PROPERTY_TYPE_BOOLEAN, AO_PROPERTY_TYPE_INTEGER, AO_PROPERTY_TYPE_LIST, AO_PROPERTY_TYPE_LONG, AO_PROPERTY_TYPE_PROPERTYOWNER, AO_PROPERTY_TYPE_STRING, cachedConfigurationMap, configuration, configurationLabels, configurationTypes, cr, VERSION`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Topic()`
  Constructs an identity of a Publish/Subscribe Topic with the default name
  `Topic(String name)`
  Constructs an identity of a Publish/Subscribe Topic with the given name

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getDescription()`
  Returns the description for this Topic.
  `Reference`
  `getReference()`
  Returns a Reference Object that can be used to reconstruct this object.
  `void`
  `setDescription(String description)`
  Sets a description for this Topic.
  `void`
  `setName(String name)`
  Sets the name of this Topic.

  ### Methods inherited from class BasicTopic

  `equals, hashCode, isQueue, isTemporary`

  ### Methods inherited from class Destination

  `getName, getQueueName, getTopicName, setDefaultConfiguration, toString, validate_imqDestinationName`

  ### Methods inherited from class AdministeredObject

  `dump, enumeratePropertyNames, getConfiguration, getCurrentConfiguration, getLabelForGroup, getPropertiesForGroup, getProperty, getPropertyForListValue, getPropertyGroups, getPropertyLabel, getPropertyListOtherName, getPropertyListValues, getPropertyType, getPropertyValueForListValue, getStoredVersion, getVERSION, isPropertyDeprecated, isPropertyHidden, isReadOnly, isStoredVersionCompatible, setProperties, setProperty, setReadOnly, setStoredVersion`

  ### Methods inherited from class Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface jakarta.jms.Topic

  `getTopicName, toString`

- ## Constructor Details

  - ### Topic

    public Topic()
    Constructs an identity of a Publish/Subscribe Topic with the default name

  - ### Topic

    public Topic(String name) throws jakarta.jms.JMSException
    Constructs an identity of a Publish/Subscribe Topic with the given name
    Parameters:
      `name` - The name of the Topic
    Throws:
      `jakarta.jms.JMSException`

- ## Method Details

  - ### getReference

    public Reference getReference()
    Returns a Reference Object that can be used to reconstruct this object.
    Specified by:
      `getReference` in interface `Referenceable`
    Returns:
      The Reference Object that can be used to reconstruct this object

  - ### setName

    public void setName(String name)
    Sets the name of this Topic. This method performs name validatation This is used by an Application Server via the Sun MQ J2EE Resource Adapter
    Parameters:
      `name` - The name of the Topic
    Throws:
      `IllegalArgumentException` - if name is invalid

  - ### setDescription

    public void setDescription(String description)
    Sets a description for this Topic. The description can be any String
    Parameters:
      `description` - The description for this Topic

  - ### getDescription

    public String getDescription()
    Returns the description for this Topic.
    Returns:
      The description for this Topic