Package tigase.db

## Interface NonAuthUserRepository

- All Known Implementing Classes:
    `NonAuthUserRepositoryImpl`

      public interface NonAuthUserRepository

  Describe interface WriteOnlyUserRepository here.
  Created: Sat Oct 14 20:42:30 2006
  Author:
    Artur Hefczyc

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static java.lang.String` | `OFFLINE_DATA_NODE` |
    `static java.lang.String` | `PUBLIC_DATA_NODE` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addOfflineData​(BareJID user, java.lang.String subnode, java.lang.String key, java.lang.String value)` | `addDataList` method adds mode entries to existing data list associated with given key in repository under given node path.
    `void` | `addOfflineDataList​(BareJID user, java.lang.String subnode, java.lang.String key, java.lang.String[] list)` | `addDataList` method adds mode entries to existing data list associated with given key in repository under given node path.
    `java.lang.String` | `getDomainTempData​(BareJID domain, java.lang.String subnode, java.lang.String key, java.lang.String def)` | Retrieves and returns a value associated with given subnode and key from a publicly available space.
    `java.lang.String` | `getPublicData​(BareJID user, java.lang.String subnode, java.lang.String key, java.lang.String def)` | `getPublicData` method returns a value associated with given key for user repository in given subnode.
    `java.lang.String[]` | `getPublicDataList​(BareJID user, java.lang.String subnode, java.lang.String key)` | `getPublicDataList` method returns array of values associated with given key or `null` if given key does not exist for given user ID in given node path.
    `java.lang.String` | `getTempData​(java.lang.String subnode, java.lang.String key, java.lang.String def)` | Retrieves and returns a value associated with given subnode and key from a publicly available space.
    `void` | `putDomainTempData​(BareJID domain, java.lang.String subnode, java.lang.String key, java.lang.String value)` | The method allows to store some temporary data by the plugin in publicly available space.
    `void` | `putTempData​(java.lang.String subnode, java.lang.String key, java.lang.String value)` | The method allows to store some temporary data by the plugin in publicly available space.
    `void` | `removeDomainTempData​(BareJID domain, java.lang.String subnode, java.lang.String key)` | The method allows to remove existing data stored in a temporary storage space associated with a given DNS domain.
    `void` | `removeTempData​(java.lang.String subnode, java.lang.String key)` | The method allows to remove existing data stored in the Tigase instance specific temporary storage.

- - ### Field Detail

    - #### PUBLIC_DATA_NODE

          static final java.lang.String PUBLIC_DATA_NODE

      See Also:
        Constant Field Values

    - #### OFFLINE_DATA_NODE

          static final java.lang.String OFFLINE_DATA_NODE

      See Also:
        Constant Field Values

  - ### Method Detail

    - #### addOfflineData

          void addOfflineData​(BareJID user,
                              java.lang.String subnode,
                              java.lang.String key,
                              java.lang.String value)
                       throws UserNotFoundException,
                              DataOverwriteException

      `addDataList` method adds mode entries to existing data list associated with given key in repository under given node path. This method is very similar to `setDataList(...)` except it doesn't remove existing data.
      Parameters:
        `user` - a `String` value of user ID for which data must be stored. User ID consists of user name and domain name.
        `subnode` - a `String` value is a node path where data is stored. Node path has the same form as directory path on file system:

            /root/subnode1/subnode2

        .
        `key` - a `String` with which the specified values list is to be associated.
        `value` - a `String` is an array of values to be assosiated with the specified key.
      Throws:
        `UserNotFoundException` - if user id hasn't been found in reository.
        `DataOverwriteException`

    - #### addOfflineDataList

          void addOfflineDataList​(BareJID user,
                                  java.lang.String subnode,
                                  java.lang.String key,
                                  java.lang.String[] list)
                           throws UserNotFoundException

      `addDataList` method adds mode entries to existing data list associated with given key in repository under given node path. This method is very similar to `setDataList(...)` except it doesn't remove existing data.
      Parameters:
        `user` - a `String` value of user ID for which data must be stored. User ID consists of user name and domain name.
        `subnode` - a `String` value is a node path where data is stored. Node path has the same form as directory path on file system:

            /root/subnode1/subnode2

        .
        `key` - a `String` with which the specified values list is to be associated.
        `list` - a `String[]` is an array of values to be assosiated with the specified key.
      Throws:
        `UserNotFoundException` - if user id hasn't been found in reository.

    - #### getDomainTempData

          java.lang.String getDomainTempData​(BareJID domain,
                                             java.lang.String subnode,
                                             java.lang.String key,
                                             java.lang.String def)
                                      throws TigaseDBException

      Retrieves and returns a value associated with given subnode and key from a publicly available space. The space is specific to given virtual domain and is shared among all running cluster nodes. The data are stored in some temporary space outside of the registered user data so no information for registered users can be retrieved.
      Parameters:
        `domain` - is a DNS domain name with which the data is associated.
        `subnode` - a `String` value is a node path where data is stored. Node path has the same form as directory path on file system:

            /root/subnode1/subnode2

        .
        `key` - a `String` with which the needed value is associated.
        `def` - a `String` value which is returned in case if data for specified key does not exixist in repository.
      Returns:
        a `String` value for a given subnode and key or `def]` if no entry has been found.
      Throws:
        `TigaseDBException` - if there was an error during reading data from the repository.

    - #### getPublicData

          java.lang.String getPublicData​(BareJID user,
                                         java.lang.String subnode,
                                         java.lang.String key,
                                         java.lang.String def)
                                  throws UserNotFoundException

      `getPublicData` method returns a value associated with given key for user repository in given subnode. If key is not found in repository given default value is returned.
      Parameters:
        `user` - a `String` value of user ID for which data must be stored. User ID consists of user name and domain name.
        `subnode` - a `String` value is a node path where data is stored. Node path has the same form as directory path on file system:

            /root/subnode1/subnode2

        .
        `key` - a `String` with which the needed value is associated.
        `def` - a `String` value which is returned in case if data for specified key does not exixist in repository.
      Returns:
        a `String` value for a given subnode and key or `def` if no entry has been found.
      Throws:
        `UserNotFoundException` - if user id hasn't been found in reository.

    - #### getPublicDataList

          java.lang.String[] getPublicDataList​(BareJID user,
                                               java.lang.String subnode,
                                               java.lang.String key)
                                        throws UserNotFoundException

      `getPublicDataList` method returns array of values associated with given key or `null` if given key does not exist for given user ID in given node path.
      Parameters:
        `user` - a `String` value of user ID for which data must be stored. User ID consists of user name and domain name.
        `subnode` - a `String` value is a node path where data is stored. Node path has the same form as directory path on file system:

            /root/subnode1/subnode2

        .
        `key` - a `String` with which the needed values list is associated.
      Returns:
        a `String[]` value
      Throws:
        `UserNotFoundException` - if user id hasn't been found in reository.

    - #### getTempData

          java.lang.String getTempData​(java.lang.String subnode,
                                       java.lang.String key,
                                       java.lang.String def)
                                throws TigaseDBException

      Retrieves and returns a value associated with given subnode and key from a publicly available space. The space is specific for the Tigase instance and is not shared among different cluster nodes. The data is stored in some temporary space outside of the registered user data. So no information for registered users can be retrieved.
      Parameters:
        `subnode` - a `String` value is a node path where data is stored. Node path has the same form as directory path on file system:

            /root/subnode1/subnode2

        .
        `key` - a `String` with which the needed value is associated.
        `def` - a `String` value which is returned in case if data for specified key does not exixist in repository.
      Returns:
        a `String` value for a given subnode and key or `def` if no entry has been found.
      Throws:
        `TigaseDBException` - if there was an error during reading data from the repository.

    - #### putDomainTempData

          void putDomainTempData​(BareJID domain,
                                 java.lang.String subnode,
                                 java.lang.String key,
                                 java.lang.String value)
                          throws TigaseDBException

      The method allows to store some temporary data by the plugin in publicly available space. The space is specific to given virtual domain and is shared among all running cluster nodes. The data is stored in some place outside of the normal user space so no information for registered user can be overwriten.
      If there is already a value for a given subnode and key it will be overwritten otherwise a new entry will be created.
      Parameters:
        `domain` - is a DNS domain name with which the data is associated.
        `subnode` - a `String` value is a node path where data is stored. Node path has the same form as directory path on file system:

            /root/subnode1/subnode2

        .
        `key` - a `String` with which the specified values list is to be associated.
        `value` - a `String` is an array of values to be assosiated with the specified key.
      Throws:
        `TigaseDBException` - if there was an error during writing data to the repository.

    - #### putTempData

          void putTempData​(java.lang.String subnode,
                           java.lang.String key,
                           java.lang.String value)
                    throws TigaseDBException

      The method allows to store some temporary data by the plugin in publicly available space. The space is specific for the Tigase instance and is not shared among different cluster nodes. The data is stored in some place outside of the normal user space so no information for registered user can be overwriten.
      If there is already a value for a given subnode and key it will be overwritten otherwise a new entry will be created.
      Parameters:
        `subnode` - a `String` value is a node path where data is stored. Node path has the same form as directory path on file system:

            /root/subnode1/subnode2

        .
        `key` - a `String` with which the specified values list is to be associated.
        `value` - a `String` is an array of values to be assosiated with the specified key.
      Throws:
        `TigaseDBException` - if there was an error during writing data to the repository.

    - #### removeDomainTempData

          void removeDomainTempData​(BareJID domain,
                                    java.lang.String subnode,
                                    java.lang.String key)
                             throws TigaseDBException

      The method allows to remove existing data stored in a temporary storage space associated with a given DNS domain.
      Parameters:
        `domain` - is a DNS domain name with which the data is associated.
        `subnode` - a `String` value is a node path where data is stored. Node path has the same form as directory path on file system:

            /root/subnode1/subnode2

        .
        `key` - a `String` with which the specified values list is to be associated.
      Throws:
        `TigaseDBException` - if there was an error during writing data to the repository.

    - #### removeTempData

          void removeTempData​(java.lang.String subnode,
                              java.lang.String key)
                       throws TigaseDBException

      The method allows to remove existing data stored in the Tigase instance specific temporary storage.
      Parameters:
        `subnode` - a `String` value is a node path where data is stored. Node path has the same form as directory path on file system:

            /root/subnode1/subnode2

        .
        `key` - a `String` with which the specified values list is to be associated.
      Throws:
        `TigaseDBException` - if there was an error during writing data to the repository.