tigase.server.ext

## Class CompSQLRepository

- java.lang.Object
- - tigase.server.ext.CompSQLRepository

- All Implemented Interfaces:
    Iterable<CompRepoItem>, ComponentRepository<CompRepoItem>, Repository

      public class CompSQLRepository
      extends Object
      implements ComponentRepository<CompRepoItem>

  Created: Nov 7, 2009 11:26:10 AM
  Version:
    $Rev$
  Author:
    Artur Hefczyc

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface tigase.db.Repository

      `Repository.Meta`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `REPO_URI_PROP_KEY` Field description
    `static String` | `TABLE_NAME` Field description

    - ### Fields inherited from interface tigase.db.comp.ComponentRepository

      `COMP_REPO_BIND`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CompSQLRepository()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addItem(CompRepoItem item)` The method adds a new or updates existing Item in the repository.
    `void` | `addItemNoStore(CompRepoItem item)` The method adds a new or updates existing Item.
    `void` | `addRepoChangeListener(RepositoryChangeListenerIfc<CompRepoItem> repoChangeListener)` Adds a listener for repository Item change.
    `Collection<CompRepoItem>` | `allItems()` Returns a collection with all items stored in the repository.
    `boolean` | `contains(String key)` The method checks whether the item is stored in the repository.
    `void` | `destroy()` Method destroys this instance of ComponentRepository releasing resources allocated for this instance of ComponentRepository if possible
    `void` | `getDefaults(Map<String,Object> defs, Map<String,Object> params)` The method is called to obtain default configuration settings if there are any for this repository implementation The configuration settings are implementation dependent and there are no defaults set by the server.
    `CompRepoItem` | `getItem(String key)` The method returns all item configuration parameters for a key or `null` if the item does not exist in the repository.
    `CompRepoItem` | `getItemInstance()` Creates a new, uninitialized instance of the repository Item.
    `void` | `initRepository(String conn_str, Map<String,String> params)` The method is called to initialize the data repository.
    `Iterator<CompRepoItem>` | `iterator()`
    `void` | `reload()` This method is called to reload items from the database or other permanent storage.
    `void` | `removeItem(String key)` The method is called to remove given Item from the memory cache and permanent storage.
    `void` | `removeRepoChangeListener(RepositoryChangeListenerIfc<CompRepoItem> repoChangeListener)` Removes a listener for repository Item change.
    `void` | `setAutoloadTimer(long delay)` Sets autoload task to periodically reload data from database.
    `void` | `setProperties(Map<String,Object> properties)` The method is called to set configuration for this repository implementation.
    `int` | `size()` The method returns number of items in the repository.
    `void` | `store()` The method is called to store all data in the database.
    `String` | `validateItem(CompRepoItem item)` Performs Item validation to check whether it meets the repository policy.

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

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

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### Field Detail

    - #### REPO_URI_PROP_KEY

          public static final String REPO_URI_PROP_KEY

      Field description
      See Also:
        Constant Field Values

    - #### TABLE_NAME

          public static final String TABLE_NAME

      Field description
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### CompSQLRepository

          public CompSQLRepository()

  - ### Method Detail

    - #### addRepoChangeListener

          public void addRepoChangeListener(RepositoryChangeListenerIfc<CompRepoItem> repoChangeListener)

      Description copied from interface: `ComponentRepository`
      Adds a listener for repository Item change.
      Specified by:
        `addRepoChangeListener` in interface `ComponentRepository<CompRepoItem>`

    - #### removeRepoChangeListener

          public void removeRepoChangeListener(RepositoryChangeListenerIfc<CompRepoItem> repoChangeListener)

      Description copied from interface: `ComponentRepository`
      Removes a listener for repository Item change.
      Specified by:
        `removeRepoChangeListener` in interface `ComponentRepository<CompRepoItem>`

    - #### addItemNoStore

          public void addItemNoStore(CompRepoItem item)

      Description copied from interface: `ComponentRepository`
      The method adds a new or updates existing Item. It needs to have all fields set correctly. After this method call is finished a new added item must be available in the component repository. The method adds the item to memory cache but not to a permanent storage.
      Specified by:
        `addItemNoStore` in interface `ComponentRepository<CompRepoItem>`
      Parameters:
        `item` - a `Item` with all it's configuration parameters.

    - #### addItem

          public void addItem(CompRepoItem item)

      Description copied from interface: `ComponentRepository`
      The method adds a new or updates existing Item in the repository. It needs to have all fields set correctly. After this method call is finished a new added item must be available in the component repository. The method adds the item to memory cache and permanent storage.
      Specified by:
        `addItem` in interface `ComponentRepository<CompRepoItem>`
      Parameters:
        `item` - a `Item` with all it's configuration parameters.

    - #### allItems

          public Collection<CompRepoItem> allItems()

      Description copied from interface: `ComponentRepository`
      Returns a collection with all items stored in the repository.
      Specified by:
        `allItems` in interface `ComponentRepository<CompRepoItem>`

    - #### contains

          public boolean contains(String key)

      Description copied from interface: `ComponentRepository`
      The method checks whether the item is stored in the repository.
      Specified by:
        `contains` in interface `ComponentRepository<CompRepoItem>`
      Parameters:
        `key` - a `String` with key to search for.
      Returns:
        a `boolean` value `true` if the item exists in the repository or `false` of it does not.

    - #### destroy

          public void destroy()

      Description copied from interface: `ComponentRepository`
      Method destroys this instance of ComponentRepository releasing resources allocated for this instance of ComponentRepository if possible
      Specified by:
        `destroy` in interface `ComponentRepository<CompRepoItem>`

    - #### getDefaults

          public void getDefaults(Map<String,Object> defs,
                                  Map<String,Object> params)

      Description copied from interface: `ComponentRepository`
      The method is called to obtain default configuration settings if there are any for this repository implementation The configuration settings are implementation dependent and there are no defaults set by the server. Default settings returned by this method are then saved in the configuration file and presented to the admin for further adjustments.
      Specified by:
        `getDefaults` in interface `ComponentRepository<CompRepoItem>`
      Parameters:
        `defs` - is a `Map` collection where all repository configuration defaults must be put.
        `params` - is a `Map` collection with some preset properties for the server. These settings can be used to adjust repository defaults, for example they can contain database connection URL or initial list of virtual domains.

    - #### getItem

          public CompRepoItem getItem(String key)

      Description copied from interface: `ComponentRepository`
      The method returns all item configuration parameters for a key or `null` if the item does not exist in the repository.
      Specified by:
        `getItem` in interface `ComponentRepository<CompRepoItem>`
      Parameters:
        `key` - a `String` with item identifier to search for.
      Returns:
        a `Item` for a given key or `null` if the item is not in the repository.

    - #### getItemInstance

          public CompRepoItem getItemInstance()

      Description copied from interface: `ComponentRepository`
      Creates a new, uninitialized instance of the repository Item.
      Specified by:
        `getItemInstance` in interface `ComponentRepository<CompRepoItem>`
      Returns:
        a new, uninitialized instance of the repository Item.

    - #### initRepository

          public void initRepository(String conn_str,
                                     Map<String,String> params)
                              throws DBInitException

      Description copied from interface: `Repository`
      The method is called to initialize the data repository. Depending on the implementation all the initialization parameters can be passed either via `resource_uri` parameter as the database connection string or via `params` map if the required repository parameters are more complex or both.
      Specified by:
        `initRepository` in interface `Repository`
      Parameters:
        `conn_str` - value in most cases representing the database connection string.
        `params` - is a `Map` with repository properties necessary to initialize and perform all the functions. The initialization parameters are implementation dependent.
      Throws:
        `DBInitException` - if there was an error during repository initialization. Some implementations, though, perform so called lazy initialization so even though there is a problem with the underlying repository it may not be signaled through this method call.

    - #### iterator

          public Iterator<CompRepoItem> iterator()

      Specified by:
        `iterator` in interface `Iterable<CompRepoItem>`

    - #### reload

          public void reload()

      Description copied from interface: `ComponentRepository`
      This method is called to reload items from the database or other permanent storage. It is possible that items list is modified externally by third-party system. When all modifications are done this method is called to refresh the class cache. Whether the implementation load whole list or just last modifications is implementation dependent.
      Specified by:
        `reload` in interface `ComponentRepository<CompRepoItem>`

    - #### removeItem

          public void removeItem(String key)

      Description copied from interface: `ComponentRepository`
      The method is called to remove given Item from the memory cache and permanent storage. After this method is completed the item should no longer be available in the component repository.
      Specified by:
        `removeItem` in interface `ComponentRepository<CompRepoItem>`
      Parameters:
        `key` - a `String` with domain name to remove.

    - #### setProperties

          public void setProperties(Map<String,Object> properties)

      Description copied from interface: `ComponentRepository`
      The method is called to set configuration for this repository implementation. The configuration is repository implementation dependent. There are no default settings for the repository.
      Specified by:
        `setProperties` in interface `ComponentRepository<CompRepoItem>`
      Parameters:
        `properties` - a `Map` with configuration settings. Content of this `Map` must not be modified. This read-only collection.

    - #### size

          public int size()

      Description copied from interface: `ComponentRepository`
      The method returns number of items in the repository.
      Specified by:
        `size` in interface `ComponentRepository<CompRepoItem>`
      Returns:
        an `int` value with number of items in the repository.

    - #### store

          public void store()

      Description copied from interface: `ComponentRepository`
      The method is called to store all data in the database. It is used when the repository has been changed in some way and the changes have to be put to a permanent storage for later retrieval.
      Specified by:
        `store` in interface `ComponentRepository<CompRepoItem>`

    - #### validateItem

          public String validateItem(CompRepoItem item)

      Description copied from interface: `ComponentRepository`
      Performs Item validation to check whether it meets the repository policy. If validation is successful the method returns `null`, otherwise it returns an error description.
      Specified by:
        `validateItem` in interface `ComponentRepository<CompRepoItem>`
      Parameters:
        `item` - is an `Item` object to perform validation checking upon.
      Returns:
        `null` on success and an error message otherwise.

    - #### setAutoloadTimer

          public void setAutoloadTimer(long delay)

      Description copied from interface: `ComponentRepository`
      Sets autoload task to periodically reload data from database.
      Specified by:
        `setAutoloadTimer` in interface `ComponentRepository<CompRepoItem>`
      Parameters:
        `delay` - in seconds between each database reload.

Copyright © 2022 "Tigase, Inc.". All rights reserved.