# Class AdministeredObject

java.lang.Object
com.sun.messaging.AdministeredObject

All Implemented Interfaces:
  `Serializable`

Direct Known Subclasses:
  `AdminConnectionFactory, BasicConnectionFactory, Destination`

public abstract class AdministeredObject extends Object implements Serializable
An `AdministeredObject` encapsulates behavior common to all Sun MQ Administered Objects and MQ Administered Object classes extend this class.

All MQ Administered Objects contain a configuration and maintain a state flag indicating whether they are modifiable or read only. They are also versioned to support migration of previous formats of MQ Administered Objects to the current format.

When a MQ Administered Object is first created it contains the default configuration and the configuration is modifiable. After modification (either programmatically, or by the administrator using the MQ Administration utilities), an `AdministeredObject` can be set to read only to prevent further modification.

Typically, the Sun MQ Administration utilities would be used to create MQ Administered Objects, optionally set their state to read only, and store them using the Java Naming and Directory Service (JNDI).

When Sun MQ applications use JNDI and `lookup()` MQ Administered Objects that have had their state set to read only, the applications will not be able to modify the administrator stored configurations.

Sun MQ automatically converts JMQ, iMQ and Sun ONE MQ Administered Objects from the following previous versions of JMQ, iMQ and Sun ONE MQ to the current version of Oracle GlassFish(tm) Server Message Queue Administered Objects.

- JMQ 1.1 Beta
- JMQ 1.1 FCS
- JMQ 2.0 FCS
- JMQ 2.1 SP1
- iMQ 3.0 FCS
- S1MQ 3.5 FCS

Conversion of JMQ Administered Objects created using JMQ1.1 EA and versions of JMQ prior to JMQ1.1 EA is not supported.

See Also:
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `AO_PROPERTY_TYPE_BOOLEAN`
  AdministeredObject configuration property type designator for Boolean
  `static final String`
  `AO_PROPERTY_TYPE_INTEGER`
  AdministeredObject configuration property type designator for Integer
  `static final String`
  `AO_PROPERTY_TYPE_LIST`
  AdministeredObject configuration property type designator for List
  `static final String`
  `AO_PROPERTY_TYPE_LONG`
  AdministeredObject configuration property type designator for Long
  `static final String`
  `AO_PROPERTY_TYPE_PROPERTYOWNER`
  AdministeredObject configuration property type designator for PropertyOwner
  `static final String`
  `AO_PROPERTY_TYPE_STRING`
  AdministeredObject configuration property type designator for String
  `protected static final Map<String, Properties[]>`
  `cachedConfigurationMap`
  cachedConfigurationMap key = defaultsBase, value is a Properties[] where value[0] is the cached initial value of configuration where value[1] is the cached initial value of configurationTypes where value[2] is the cached initial value of configurationLabels
  `protected Properties`
  `configuration`
  The configuration of this `AdministeredObject`
  `protected Properties`
  `configurationLabels`
  `protected Properties`
  `configurationTypes`
  `static final com.sun.messaging.jmq.jmsclient.resources.ClientResources`
  `cr`
  `static final String`
  `VERSION`
  The Version string of this `AdministeredObject` is `3.0`

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `AdministeredObject(String defaultsBase)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `dump()`
  Returns the provider specific name for this `AdministeredObject` along with a complete listing of its configuration, configuration attribute label keys and configuration attribute types.
  `Enumeration`
  `enumeratePropertyNames()`
  Returns an enumeration of the configuration property names of this `AdministeredObject`.
  `Properties`
  `getConfiguration()`
  Returns the configuration of this `AdministeredObject`.
  `Properties`
  `getCurrentConfiguration()`
  Returns the current (runtime) configuration of this `AdministeredObject` modified by any System properties.
  `String`
  `getLabelForGroup(String group)`
  Returns the label for a given group.
  `String`
  `getPropertiesForGroup(String group)`
  Returns an ordered property list for a given group.
  `String`
  `getProperty(String propname)`
  Returns a single configuration property value given the property name.
  `String`
  `getPropertyForListValue(String listpropname, String listvalue)`
  Returns the property name for any selection on Properties of Type List.
  `String`
  `getPropertyGroups()`
  Returns an ordered property groups list.
  `String`
  `getPropertyLabel(String propname)`
  Returns the configuration label of a single configuration property name.
  `String`
  `getPropertyListOtherName(String propname)`
  Returns the property name for the ...
  `String`
  `getPropertyListValues(String propname)`
  Returns an ordered property list for Properties of Type List.
  `String`
  `getPropertyType(String propname)`
  Returns the configuration type of a single configuration property name.
  `String`
  `getPropertyValueForListValue(String listpropname, String listvalue, String propname)`
  Returns the property values set when a property of type List is set to a particular value.
  `final String`
  `getStoredVersion()`
  Returns the storedVersion of this `AministeredObject`.
  `static String`
  `getVERSION()`
  Returns the Version string used for this MQ `AdministeredObject`.
  `boolean`
  `isPropertyDeprecated(String propname)`
  Returns whether a single configuration property name is deprecated or not.
  `boolean`
  `isPropertyHidden(String propname)`
  Returns whether a single configuration property name should be hidden or not.
  `final boolean`
  `isReadOnly()`
  Returns the readOnly state of this `AministeredObject`.
  `final boolean`
  `isStoredVersionCompatible()`
  Tests whether the storedVersion of this `AministeredObject` is compatible with the current runtime VERSION
  `abstract void`
  `setDefaultConfiguration()`
  Subclasses must implement this to set their default configuration.
  `final void`
  `setProperties(Map<String,String> properties)`
  Sets configuration properties in this `AdministeredObject`.
  `String`
  `setProperty(String propname, String propval)`
  Sets a single configuration property in this `AdministeredObject`.
  `final void`
  `setReadOnly()`
  Sets this `AdministeredObject` to be read only.
  `final void`
  `setStoredVersion(String version)`
  `String`
  `toString()`
  Returns the provider specific name for this `AdministeredObject` along with a listing of its configuration.

  ### Methods inherited from class Object

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

- ## Field Details

  - ### VERSION

    public static final String VERSION
    The Version string of this `AdministeredObject` is `3.0`
    See Also:
      - Constant Field Values

  - ### AO_PROPERTY_TYPE_STRING

    public static final String AO_PROPERTY_TYPE_STRING
    AdministeredObject configuration property type designator for String
    See Also:
      - Constant Field Values

  - ### AO_PROPERTY_TYPE_INTEGER

    public static final String AO_PROPERTY_TYPE_INTEGER
    AdministeredObject configuration property type designator for Integer
    See Also:
      - Constant Field Values

  - ### AO_PROPERTY_TYPE_LONG

    public static final String AO_PROPERTY_TYPE_LONG
    AdministeredObject configuration property type designator for Long
    See Also:
      - Constant Field Values

  - ### AO_PROPERTY_TYPE_BOOLEAN

    public static final String AO_PROPERTY_TYPE_BOOLEAN
    AdministeredObject configuration property type designator for Boolean
    See Also:
      - Constant Field Values

  - ### AO_PROPERTY_TYPE_PROPERTYOWNER

    public static final String AO_PROPERTY_TYPE_PROPERTYOWNER
    AdministeredObject configuration property type designator for PropertyOwner
    See Also:
      - Constant Field Values

  - ### AO_PROPERTY_TYPE_LIST

    public static final String AO_PROPERTY_TYPE_LIST
    AdministeredObject configuration property type designator for List
    See Also:
      - Constant Field Values

  - ### configuration

    protected Properties configuration
    The configuration of this `AdministeredObject`

  - ### configurationTypes

    protected Properties configurationTypes

  - ### configurationLabels

    protected Properties configurationLabels

  - ### cr

    public static final transient com.sun.messaging.jmq.jmsclient.resources.ClientResources cr

  - ### cachedConfigurationMap

    protected static final Map<String, Properties[]> cachedConfigurationMap
    cachedConfigurationMap key = defaultsBase, value is a Properties[] where value[0] is the cached initial value of configuration where value[1] is the cached initial value of configurationTypes where value[2] is the cached initial value of configurationLabels

- ## Constructor Details

  - ### AdministeredObject

    protected AdministeredObject(String defaultsBase)

- ## Method Details

  - ### setDefaultConfiguration

    public abstract void setDefaultConfiguration()
    Subclasses must implement this to set their default configuration.

  - ### isReadOnly

    public final boolean isReadOnly()
    Returns the readOnly state of this `AministeredObject`.
    Returns:
      the readOnly state of this `AministeredObject`

  - ### getStoredVersion

    public final String getStoredVersion()
    Returns the storedVersion of this `AministeredObject`.
    Returns:
      the storedVersion of this `AministeredObject`

  - ### setStoredVersion

    public final void setStoredVersion(String version)

  - ### isStoredVersionCompatible

    public final boolean isStoredVersionCompatible()
    Tests whether the storedVersion of this `AministeredObject` is compatible with the current runtime VERSION

    This methods flags mismatches between this `Administered Object` and the version stored in JNDI using an earlier or different version of this class. It is advisable to check before an earlier version of Administered Object is being overwritten by a newer version, otherwise an earlier version of the MQ Client will fail when attempting to use JNDI to `lookup()` that earlier version of the Administered Object.

    Returns:
      the storedVersion of this `AministeredObject`

  - ### setReadOnly

    public final void setReadOnly()
    Sets this `AdministeredObject` to be read only. Once this `AdministeredObject` has been set to read only it cannot be reset back to read write.

  - ### getConfiguration

    public Properties getConfiguration()
    Returns the configuration of this `AdministeredObject`.

    The configuration returned is the one that has been administratively or programmatically set in this `AdministeredObject` This configuration is unaffected by runtime overrides using System properties.

    Use `getCurrentConfiguration()` to get the current configuration, which takes into account any overriding System properties that have been set at runtime.

    Returns:
      the configuration of this `AdministeredObject`.
    See Also:
      - `getCurrentConfiguration()`

  - ### getPropertyGroups

    public String getPropertyGroups()
    Returns an ordered property groups list.
    Returns:
      The String that represents an ordered property groups list. This list uses the ' `|` ' character as the separator.

  - ### getPropertiesForGroup

    public String getPropertiesForGroup(String group)
    Returns an ordered property list for a given group.
    Parameters:
      `group` - The group for which the property list is desired.
    Returns:
      The String that represents an ordered property list for a given group. This list uses the ' `|` ' character as the separator.

  - ### getLabelForGroup

    public String getLabelForGroup(String group)
    Returns the label for a given group.
    Parameters:
      `group` - The group for which the label is desired.
    Returns:
      The label the given group.

  - ### getPropertyListValues

    public String getPropertyListValues(String propname)
    Returns an ordered property list for Properties of Type List.
    Parameters:
      `propname` - The name of the configuration property that is of type List.
    Returns:
      The String that represents an ordered property list. This list uses the ' `|` ' character as the separator.

  - ### getPropertyForListValue

    public String getPropertyForListValue(String listpropname, String listvalue)
    Returns the property name for any selection on Properties of Type List.
    Parameters:
      `listpropname` - The name of the configuration property that is of type List.
      `listvalue` - The value of the configuration property that is of type List.
    Returns:
      The property that is pre set when a property of type List is set to the value `listvalue`.

  - ### getPropertyValueForListValue

    public String getPropertyValueForListValue(String listpropname, String listvalue, String propname)
    Returns the property values set when a property of type List is set to a particular value.
    Parameters:
      `listpropname` - The name of the configuration property that is of type List.
      `listvalue` - The value of the configuration property that is of type List.
      `propname` - The name of the property for which the value is being sought.
    Returns:
      The value that property `propname` is pre set to when the property `listpropname` of type list is set to the value `listvalue`.

  - ### getPropertyListOtherName

    public String getPropertyListOtherName(String propname)
    Returns the property name for the ... selection on Properties of Type List.
    Returns:
      The property to be exposed for editing when the `...` selection on Properties of Type List is selected.

  - ### enumeratePropertyNames

    public Enumeration enumeratePropertyNames()
    Returns an enumeration of the configuration property names of this `AdministeredObject`.
    Returns:
      The enumeration of configuration property names.

  - ### setProperty

    public String setProperty(String propname, String propval) throws jakarta.jms.JMSException
    Sets a single configuration property in this `AdministeredObject`.
    Parameters:
      `propname` - The name of the configuration property to set.
      `propval` - The value of the configuration property to set.
    Returns:
      The previous value of the configuration property being set.
    Throws:
      `InvalidPropertyException` - If an invalid property name is being set. The Exception string is the name of the invalid property.
      `InvalidPropertyValueException` - If an invalid property value is being set. The Exception string is the invalid value of the property.
      `ReadOnlyPropertyException` - If an attempt is made to modify this `AdministeredObject` when the readOnly flag has been set.
      `jakarta.jms.JMSException`

  - ### setProperties

    public final void setProperties(Map<String,String> properties) throws jakarta.jms.JMSException
    Sets configuration properties in this `AdministeredObject`.
    Parameters:
      `properties` - map of name to value to set as properties. For every entry `setProperty(String, String)` will be called.
    Throws:
      `InvalidPropertyException` - If an invalid property name is being set. The Exception string is the name of the invalid property.
      `InvalidPropertyValueException` - If an invalid property value is being set. The Exception string is the invalid value of the property.
      `ReadOnlyPropertyException` - If an attempt is made to modify this `AdministeredObject` when the readOnly flag has been set.
      `jakarta.jms.JMSException`

  - ### getProperty

    public String getProperty(String propname) throws jakarta.jms.JMSException
    Returns a single configuration property value given the property name.
    Parameters:
      `propname` - The name of the configuration property.
    Returns:
      The value of the configuration property `propname`.
    Throws:
      `InvalidPropertyException` - If an invalid property name is being requested. The Exception string is the name of the invalid property.
      `jakarta.jms.JMSException`

  - ### getPropertyType

    public String getPropertyType(String propname) throws jakarta.jms.JMSException
    Returns the configuration type of a single configuration property name.
    Parameters:
      `propname` - The name of the configuration property.
    Returns:
      The type of the configuration property `propname`.
    Throws:
      `InvalidPropertyException` - If an invalid property name is being requested. The Exception string is the name of the invalid property.
      `jakarta.jms.JMSException`

  - ### getPropertyLabel

    public String getPropertyLabel(String propname) throws jakarta.jms.JMSException
    Returns the configuration label of a single configuration property name.
    Parameters:
      `propname` - The name of the configuration property.
    Returns:
      The label of the configuration property `propname`.
    Throws:
      `InvalidPropertyException` - If an invalid property name is being requested. The Exception string is the name of the invalid property.
      `jakarta.jms.JMSException`

  - ### isPropertyHidden

    public boolean isPropertyHidden(String propname) throws jakarta.jms.JMSException
    Returns whether a single configuration property name should be hidden or not.
    Parameters:
      `propname` - The name of the configuration property.
    Returns:
      `true` If the configuration property `propname` should be hidden; `false` if it should not be hidden i.e. it is still supported in this version.
    Throws:
      `InvalidPropertyException` - If an invalid property name is being requested. The Exception string is the name of the invalid property.
      `jakarta.jms.JMSException`

  - ### isPropertyDeprecated

    public boolean isPropertyDeprecated(String propname) throws jakarta.jms.JMSException
    Returns whether a single configuration property name is deprecated or not.
    Parameters:
      `propname` - The name of the configuration property.
    Returns:
      `true` If the configuration property `propname` has been deprecated; `false` if it has not been deprecated i.e. it is still supported in this version.
    Throws:
      `InvalidPropertyException` - If an invalid property name is being requested. The Exception string is the name of the invalid property.
      `jakarta.jms.JMSException`

  - ### toString

    public String toString()
    Returns the provider specific name for this `AdministeredObject` along with a listing of its configuration.
    Overrides:
      `toString` in class `Object`
    Returns:
      A formatted String containing the provider specific name for this `AdministeredObject` along with a listing of its configuration.

  - ### dump

    public String dump()
    Returns the provider specific name for this `AdministeredObject` along with a complete listing of its configuration, configuration attribute label keys and configuration attribute types.
    Returns:
      A formatted String containing the provider specific name for this `AdministeredObject` along with a listing of its configuration.

  - ### getVERSION

    public static String getVERSION()
    Returns the Version string used for this MQ `AdministeredObject`.
    Returns:
      the Version string

  - ### getCurrentConfiguration

    public Properties getCurrentConfiguration()
    Returns the current (runtime) configuration of this `AdministeredObject` modified by any System properties.

    If the readOnly flag of this `AdministeredObject` is set, then this `AdministeredObject` is not affected by any System Properties set at runtime.

    Returns:
      The current (runtime) configuration of this `AdministeredObject` modified by any System properties.
    See Also:
      - `getConfiguration()`