Package tigase.db.comp

## Class RepositoryItemAbstract

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

- All Implemented Interfaces:
    `RepositoryItem`
  Direct Known Subclasses:
    `CertificateItem`, `ClusterRepoItem`, `CompRepoItem`, `ConfigItem`, `ExtServiceDiscoItem`, `TaskConfigItem`, `VHostItemImpl`

      public abstract class RepositoryItemAbstract
      extends java.lang.Object
      implements RepositoryItem

  Created: Sep 23, 2010 6:53:14 PM
  Author:
    Artur Hefczyc

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static java.lang.String` | `ADMINS_ATT` |
    `static java.lang.String` | `ADMINS_LABEL` |
    `static java.lang.String` | `OWNER_ATT` |
    `static java.lang.String` | `OWNER_LABEL` |

  - ### Constructor Summary

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

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addCommandFields​(Packet packet)` | The method is used for handling ad-hoc commands.
    `java.lang.String[]` | `getAdmins()` | Returns an array with the Item administrators, that is people IDs who can manage, configure and control less critical elements of the Item, like changing less critical configuration settings.
    `abstract java.lang.String` | `getElemName()` |
    `java.lang.String` | `getOwner()` | Returns the owner ID of the item.
    `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.
    `boolean` | `isAdmin​(java.lang.String id)` | The method checks whether the given id is one of the administrators set for the Item.
    `boolean` | `isOwner​(java.lang.String id)` | The method checks whether the person with given ID is the Item owner.
    `void` | `setAdmins​(java.lang.String[] admins)` | Returns an array with the Item administrators, that is people IDs who can manage, configure and control less critical elements of the Item, like changing less critical configuration settings.
    `protected abstract void` | `setKey​(java.lang.String key)` |
    `void` | `setOwner​(java.lang.String owner)` | Set the Item owner.
    `Element` | `toElement()` | Item data can be stored in a more complex form than a simple property string.

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

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

    - ### Methods inherited from interface tigase.db.comp.RepositoryItem

      `getKey, initFromPropertyString, toPropertyString`

- - ### Field Detail

    - #### ADMINS_ATT

          public static final java.lang.String ADMINS_ATT

      See Also:
        Constant Field Values

    - #### ADMINS_LABEL

          public static final java.lang.String ADMINS_LABEL

      See Also:
        Constant Field Values

    - #### OWNER_ATT

          public static final java.lang.String OWNER_ATT

      See Also:
        Constant Field Values

    - #### OWNER_LABEL

          public static final java.lang.String OWNER_LABEL

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### RepositoryItemAbstract

          public RepositoryItemAbstract()

  - ### Method Detail

    - #### getElemName

          public abstract java.lang.String getElemName()

    - #### setKey

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

    - #### 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`
      Parameters:
        `packet` - with empty ad-hoc command to fill with fields

    - #### getAdmins

          public java.lang.String[] getAdmins()

      Description copied from interface: `RepositoryItem`
      Returns an array with the Item administrators, that is people IDs who can manage, configure and control less critical elements of the Item, like changing less critical configuration settings. Administrators cannot remove the Item or change the owner or add/remove administrators.
      Specified by:
        `getAdmins` in interface `RepositoryItem`
      Returns:
        an array with the Item administrators IDs.

    - #### setAdmins

          public void setAdmins​(java.lang.String[] admins)

      Description copied from interface: `RepositoryItem`
      Returns an array with the Item administrators, that is people IDs who can manage, configure and control less critical elements of the Item, like changing less critical configuration settings. Administrators cannot remove the Item or change the owner or add/remove administrators.
      Specified by:
        `setAdmins` in interface `RepositoryItem`
      Parameters:
        `admins` - is an array with the Item administrators IDs to set for the Item.

    - #### getOwner

          public java.lang.String getOwner()

      Description copied from interface: `RepositoryItem`
      Returns the owner ID of the item. This is used for a management to allow fine tuned service administration with roles assigned to specific elements and items. Normally only owner can perform some critical actions like removing the item, managing item administrators or changing owner.
      There can be only one Item owner.
      Specified by:
        `getOwner` in interface `RepositoryItem`
      Returns:
        an ID of the Item owner.

    - #### setOwner

          public void setOwner​(java.lang.String owner)

      Description copied from interface: `RepositoryItem`
      Set the Item owner. This is used for a management to allow fine tuned service administration with roles assigned to specific elements and items. Normally only owner can perform some critical actions like removing the item, managing item administrators or changing owner.
      There can be only one Item owner.
      Specified by:
        `setOwner` in interface `RepositoryItem`
      Parameters:
        `owner` - is the Item owner ID.

    - #### 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`
      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`
      Parameters:
        `elem` - XML Element with all the item initialization data.

    - #### isAdmin

          public boolean isAdmin​(java.lang.String id)

      Description copied from interface: `RepositoryItem`
      The method checks whether the given id is one of the administrators set for the Item.
      Specified by:
        `isAdmin` in interface `RepositoryItem`
      Parameters:
        `id` - is an ID of a person for which we check access permissions.
      Returns:
        true of the given ID is on a list of administrators and false otherwise.

    - #### isOwner

          public boolean isOwner​(java.lang.String id)

      Description copied from interface: `RepositoryItem`
      The method checks whether the person with given ID is the Item owner.
      Specified by:
        `isOwner` in interface `RepositoryItem`
      Parameters:
        `id` - is an ID of a person for whom we check access permissions.
      Returns:
        true of the given ID is on the Item owner and false otherwise.

    - #### 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`
      Returns:
        an XML Element with all the item initialization data.