Package tigase.conf

## Class ConfigItem

- java.lang.Object
- - tigase.db.comp.RepositoryItemAbstract
  - - tigase.conf.ConfigItem

- All Implemented Interfaces:
    `RepositoryItem`

      public class ConfigItem
      extends RepositoryItemAbstract

  Created: Dec 10, 2009 2:40:26 PM
  Author:
    Artur Hefczyc

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `ConfigItem.FLAGS` |

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static java.lang.String` | `CLUSTER_NODE_ATTR` |
    `static java.lang.String` | `COMPONENT_NAME_ATTR` |
    `static java.lang.String` | `COMPONENT_NAME_LABEL` |
    `static java.lang.String` | `FLAG_ATTR` |
    `static java.lang.String` | `KEY_NAME_ATTR` |
    `static java.lang.String` | `KEY_NAME_LABEL` |
    `static java.lang.String` | `NODE_NAME_ATTR` |
    `static java.lang.String` | `NODE_NAME_LABEL` |
    `static java.lang.String` | `REPO_ITEM_ELEM_NAME` |
    `static java.lang.String` | `VALUE_ATTR` |
    `static java.lang.String` | `VALUE_LABEL` |
    `static java.lang.String` | `VALUE_TYPE_ATTR` |

    - ### Fields inherited from class tigase.db.comp.RepositoryItemAbstract

      `ADMINS_ATT, ADMINS_LABEL, OWNER_ATT, OWNER_LABEL`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ConfigItem()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addCommandFields​(Packet packet)` | The method is used for handling ad-hoc commands.
    `boolean` | `equals​(java.lang.Object o)` |
    `java.lang.String` | `getClusterNode()` |
    `java.lang.String` | `getCompName()` |
    `java.lang.String` | `getConfigKey()` | Returns a configuration property key which is constructed in a following way: `nodeName + "/" + keyName`
    `java.lang.Object` | `getConfigVal()` | Returns a configuration property value.
    `java.lang.String` | `getConfigValToString()` |
    `java.lang.String` | `getElemName()` |
    `ConfigItem.FLAGS` | `getFlag()` |
    `java.lang.String` | `getKey()` | Returns a unique key for the item in the repository.
    `java.lang.String` | `getKeyName()` | Returns a property key which is constructed in a following way: `keyName`
    `java.lang.String` | `getNodeName()` |
    `int` | `hashCode()` |
    `void` | `initFromCommand​(Packet packet)` | The method used for handling ad-hoc commands.
    `void` | `initFromElement​(Element elem)` | The item can be also initialized from a more complex repositories: XML repository or SQL database.
    `void` | `initFromPropertyString​(java.lang.String propString)` | The item can be initialized based on the data loaded from a configuration file.
    `boolean` | `isCompNodeKey​(java.lang.String comp, java.lang.String node, java.lang.String key)` |
    `boolean` | `isComponent​(java.lang.String comp)` | Checks if the given component name is equal to this item compName.
    `boolean` | `isKey​(java.lang.String key)` | Checks if the given key is equal to this item keyName.
    `boolean` | `isNode​(java.lang.String node)` | Checks if the given node is equal to this item nodeName
    `boolean` | `isNodeKey​(java.lang.String node, java.lang.String key)` | Checks if the given node and key are equal to this item nodeName and keyName.
    `void` | `set​(java.lang.String compName, java.lang.String nodeName, java.lang.String key, java.lang.Object value)` |
    `void` | `set​(java.lang.String compName_m, java.lang.String nodeName_m, java.lang.String key_m, java.lang.String value_str_m, char val_type_m, java.lang.String flag_str_m)` |
    `void` | `set​(java.lang.String clusterNode, java.lang.String compName, java.lang.String nodeName, java.lang.String key, java.lang.Object value)` |
    `void` | `set​(java.lang.String clusterNode_m, java.lang.String compName_m, java.lang.String nodeName_m, java.lang.String key_m, java.lang.Object value_m, ConfigItem.FLAGS flag_m)` |
    `void` | `set​(java.lang.String clusterNode_m, java.lang.String compName_m, java.lang.String nodeName_m, java.lang.String key_m, java.lang.String value_str_m, char val_type_m, java.lang.String flag_str_m)` |
    `protected void` | `setKey​(java.lang.String key)` |
    `void` | `setNodeKey​(java.lang.String clusterNode, java.lang.String compName, java.lang.String nodeKey, java.lang.Object value)` |
    `Element` | `toElement()` | Item data can be stored in a more complex form than a simple property string.
    `java.lang.String` | `toPropertyString()` | The item can be initialized based on the data loaded from a configuration file.
    `java.lang.String` | `toString()` |

    - ### Methods inherited from class tigase.db.comp.RepositoryItemAbstract

      `getAdmins, getOwner, isAdmin, isOwner, setAdmins, setOwner`

    - ### Methods inherited from class java.lang.Object

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

- - ### Field Detail

    - #### CLUSTER_NODE_ATTR

          public static final java.lang.String CLUSTER_NODE_ATTR

      See Also:
        Constant Field Values

    - #### COMPONENT_NAME_ATTR

          public static final java.lang.String COMPONENT_NAME_ATTR

      See Also:
        Constant Field Values

    - #### COMPONENT_NAME_LABEL

          public static final java.lang.String COMPONENT_NAME_LABEL

      See Also:
        Constant Field Values

    - #### FLAG_ATTR

          public static final java.lang.String FLAG_ATTR

      See Also:
        Constant Field Values

    - #### KEY_NAME_ATTR

          public static final java.lang.String KEY_NAME_ATTR

      See Also:
        Constant Field Values

    - #### KEY_NAME_LABEL

          public static final java.lang.String KEY_NAME_LABEL

      See Also:
        Constant Field Values

    - #### NODE_NAME_ATTR

          public static final java.lang.String NODE_NAME_ATTR

      See Also:
        Constant Field Values

    - #### NODE_NAME_LABEL

          public static final java.lang.String NODE_NAME_LABEL

      See Also:
        Constant Field Values

    - #### REPO_ITEM_ELEM_NAME

          public static final java.lang.String REPO_ITEM_ELEM_NAME

      See Also:
        Constant Field Values

    - #### VALUE_ATTR

          public static final java.lang.String VALUE_ATTR

      See Also:
        Constant Field Values

    - #### VALUE_LABEL

          public static final java.lang.String VALUE_LABEL

      See Also:
        Constant Field Values

    - #### VALUE_TYPE_ATTR

          public static final java.lang.String VALUE_TYPE_ATTR

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### ConfigItem

          public ConfigItem()

  - ### Method Detail

    - #### addCommandFields

          public void addCommandFields​(Packet packet)

      Description copied from interface: `RepositoryItem`
      The method is used for handling ad-hoc commands. The 'empty' ad-hoc command packet is provided and the Item should fill it with fields for the user.
      Specified by:
        `addCommandFields` in interface `RepositoryItem`
      Overrides:
        `addCommandFields` in class `RepositoryItemAbstract`
      Parameters:
        `packet` - with empty ad-hoc command to fill with fields

    - #### getClusterNode

          public java.lang.String getClusterNode()

    - #### getCompName

          public java.lang.String getCompName()

    - #### getConfigKey

          public java.lang.String getConfigKey()

      Returns a configuration property key which is constructed in a following way: `nodeName + "/" + keyName`

    - #### getConfigVal

          public java.lang.Object getConfigVal()

      Returns a configuration property value.

    - #### getConfigValToString

          public java.lang.String getConfigValToString()

    - #### getElemName

          public java.lang.String getElemName()

      Specified by:
        `getElemName` in class `RepositoryItemAbstract`

    - #### getFlag

          public ConfigItem.FLAGS getFlag()

    - #### getKey

          public java.lang.String getKey()

      Returns a unique key for the item in the repository. All items are stored in a memory cache which is a Map. And the key returned by this method is the item identifier in the Map.
      Returns ConfigItem key which is constructed in a following way: `compName + "/" + nodeName + "/" + keyName`
      Returns:
        an Item key.

    - #### setKey

          protected void setKey​(java.lang.String key)

      Specified by:
        `setKey` in class `RepositoryItemAbstract`

    - #### getKeyName

          public java.lang.String getKeyName()

      Returns a property key which is constructed in a following way: `keyName`

    - #### getNodeName

          public java.lang.String getNodeName()

    - #### initFromCommand

          public void initFromCommand​(Packet packet)

      Description copied from interface: `RepositoryItem`
      The method used for handling ad-hoc commands. After a user fills all given field the ad-hoc command packet is passed back to the item to initialize it with data. Similar method to initFromElement(), but the data source is different.
      Specified by:
        `initFromCommand` in interface `RepositoryItem`
      Overrides:
        `initFromCommand` in class `RepositoryItemAbstract`
      Parameters:
        `packet` - with ad-hoc command filled by the user.

    - #### initFromElement

          public void initFromElement​(Element elem)

      Description copied from interface: `RepositoryItem`
      The item can be also initialized from a more complex repositories: XML repository or SQL database. In such a case more complex representation is prefered, possibly carrying more information about the item. The method is called to initialize the item with a data parsed from an XML representation of the repository.
      Specified by:
        `initFromElement` in interface `RepositoryItem`
      Overrides:
        `initFromElement` in class `RepositoryItemAbstract`
      Parameters:
        `elem` - XML Element with all the item initialization data.

    - #### initFromPropertyString

          public void initFromPropertyString​(java.lang.String propString)

      Description copied from interface: `RepositoryItem`
      The item can be initialized based on the data loaded from a configuration file. In such a case the item representation is usually very simplified as a list of parameters separated by a marker. Please note, usually each item is separated from another with a comma, therefore do not use a comma in the item property string. Double collon is commonly used alternative.
      Parameters:
        `propString` - is a property string to initialize the RepositoryItem.

    - #### isCompNodeKey

          public boolean isCompNodeKey​(java.lang.String comp,
                                       java.lang.String node,
                                       java.lang.String key)

    - #### equals

          public boolean equals​(java.lang.Object o)

      Overrides:
        `equals` in class `java.lang.Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `java.lang.Object`

    - #### isComponent

          public boolean isComponent​(java.lang.String comp)

      Checks if the given component name is equal to this item compName.

    - #### isKey

          public boolean isKey​(java.lang.String key)

      Checks if the given key is equal to this item keyName.

    - #### isNode

          public boolean isNode​(java.lang.String node)

      Checks if the given node is equal to this item nodeName

    - #### isNodeKey

          public boolean isNodeKey​(java.lang.String node,
                                   java.lang.String key)

      Checks if the given node and key are equal to this item nodeName and keyName. This method call works the same way as following statement: `isNode(node) && isKey(key)`

    - #### set

          public void set​(java.lang.String clusterNode_m,
                          java.lang.String compName_m,
                          java.lang.String nodeName_m,
                          java.lang.String key_m,
                          java.lang.String value_str_m,
                          char val_type_m,
                          java.lang.String flag_str_m)

    - #### set

          public void set​(java.lang.String clusterNode_m,
                          java.lang.String compName_m,
                          java.lang.String nodeName_m,
                          java.lang.String key_m,
                          java.lang.Object value_m,
                          ConfigItem.FLAGS flag_m)

    - #### set

          public void set​(java.lang.String compName_m,
                          java.lang.String nodeName_m,
                          java.lang.String key_m,
                          java.lang.String value_str_m,
                          char val_type_m,
                          java.lang.String flag_str_m)

    - #### set

          public void set​(java.lang.String compName,
                          java.lang.String nodeName,
                          java.lang.String key,
                          java.lang.Object value)

    - #### set

          public void set​(java.lang.String clusterNode,
                          java.lang.String compName,
                          java.lang.String nodeName,
                          java.lang.String key,
                          java.lang.Object value)

    - #### setNodeKey

          public void setNodeKey​(java.lang.String clusterNode,
                                 java.lang.String compName,
                                 java.lang.String nodeKey,
                                 java.lang.Object value)

    - #### toElement

          public Element toElement()

      Description copied from interface: `RepositoryItem`
      Item data can be stored in a more complex form than a simple property string. The XML Element can contain much more detailed information about the element than the simplified form and is used to store the repository item in more advanced repositories then just property file. XML repository or SQL database can keep many records for repository item with as much detailed information as needed.
      Specified by:
        `toElement` in interface `RepositoryItem`
      Overrides:
        `toElement` in class `RepositoryItemAbstract`
      Returns:
        an XML Element with all the item initialization data.

    - #### toPropertyString

          public java.lang.String toPropertyString()

      Description copied from interface: `RepositoryItem`
      The item can be initialized based on the data loaded from a configuration file. In such a case the item representation is usually very simplified as a list of parameters separated by a marker. Please note, usually each item is separated from another with a comma, therefore do not use a comma in the item property string. Double collon is commonly used alternative.
      Returns:
        a property string representing the repository item in a simplified form.

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`