Package tigase.cluster.repo

## Class ClConConfigRepository

- java.lang.Object
- - tigase.db.comp.ConfigRepository<ClusterRepoItem>
  - - tigase.cluster.repo.ClConConfigRepository

- All Implemented Interfaces:
    `java.lang.Iterable<ClusterRepoItem>`, `ComponentRepository<ClusterRepoItem>`, `Repository`, `Initializable`, `UnregisterAware`, `ShutdownHook`
  Direct Known Subclasses:
    `ClConDirRepository`, `ClConSQLRepository`

      @ConfigAliases(@ConfigAlias(field="items",alias="cluster-nodes"))
      public class ClConConfigRepository
      extends ConfigRepository<ClusterRepoItem>
      implements ShutdownHook, Initializable, UnregisterAware

  Version:
    5.2.0, 13/03/09
  Author:
    Artur Hefczyc

- - ### Nested Class Summary

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

      `Repository.Meta, Repository.SchemaId`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected boolean` | `auto_remove_obsolete_items` |
    `protected boolean` | `firstLoadDone` |
    `protected long` | `lastReloadTime` |
    `protected long` | `lastReloadTimeFactor` |

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

      `autoReloadInterval, items, itemsHash`

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

      `COMP_REPO_BIND`

  - ### Constructor Summary

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

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `beforeUnregister()` | Method called before bean unregister.
    `void` | `destroy()` | Method destroys this instance of ComponentRepository releasing resources allocated for this instance of ComponentRepository if possible
    `java.lang.String` | `getConfigKey()` |
    `java.lang.String[]` | `getDefaultPropetyItems()` |
    `ClusterRepoItem` | `getItemInstance()` | Creates a new, uninitialized instance of the repository Item.
    `java.lang.String` | `getName()` |
    `java.lang.String` | `getPropertyKey()` |
    `void` | `initialize()` | Method will be called, when bean will be created, configured and ready to use.
    `void` | `initRepository​(java.lang.String resource_uri, java.util.Map<java.lang.String,​java.lang.String> params)` | Deprecated.
    `boolean` | `itemChanged​(ClusterRepoItem oldItem, ClusterRepoItem newItem)` |
    `void` | `itemLoaded​(ClusterRepoItem item)` |
    `void` | `reload()` | This method is called to reload items from the database or other permanent storage.
    `protected void` | `removeObsoloteItems​(long factor)` |
    `java.lang.String` | `shutdown()` |
    `void` | `storeItem​(ClusterRepoItem item)` |

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

      `addItem, addItemNoStore, addRepoChangeListener, allItems, contains, getDefaultItems, getDefaults, getItem, getItemsOld, initItemsMap, isInitialized, iterator, removeItem, removeItemNoStore, removeRepoChangeListener, setAutoloadTimer, setAutoReloadInterval, setItemsOld, setProperties, size, store, toString, validateItem`

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

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

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

      `forEach, spliterator`

- - ### Field Detail

    - #### auto_remove_obsolete_items

          @ConfigField(desc="Automatically remove obsolote items",
                       alias="repo-auto-remove-obsolete-items")
          protected boolean auto_remove_obsolete_items

    - #### firstLoadDone

          protected boolean firstLoadDone

    - #### lastReloadTime

          protected long lastReloadTime

    - #### lastReloadTimeFactor

          protected long lastReloadTimeFactor

  - ### Constructor Detail

    - #### ClConConfigRepository

          public ClConConfigRepository()

  - ### Method Detail

    - #### 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<ClusterRepoItem>`

    - #### getDefaultPropetyItems

          public java.lang.String[] getDefaultPropetyItems()

      Overrides:
        `getDefaultPropetyItems` in class `ConfigRepository<ClusterRepoItem>`

    - #### getName

          public java.lang.String getName()

      Specified by:
        `getName` in interface `ShutdownHook`

    - #### getPropertyKey

          public java.lang.String getPropertyKey()

      Specified by:
        `getPropertyKey` in class `ConfigRepository<ClusterRepoItem>`

    - #### getConfigKey

          public java.lang.String getConfigKey()

      Specified by:
        `getConfigKey` in class `ConfigRepository<ClusterRepoItem>`

    - #### getItemInstance

          public ClusterRepoItem getItemInstance()

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

    - #### initRepository

          @Deprecated
          public void initRepository​(java.lang.String resource_uri,
                                     java.util.Map<java.lang.String,​java.lang.String> params)
                              throws DBInitException

      Deprecated.
      Description copied from interface: `Repository`
      Method is deprecated and should not be user any more.
      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:
        `resource_uri` - 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.

    - #### 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<ClusterRepoItem>`
      Overrides:
        `reload` in class `ConfigRepository<ClusterRepoItem>`

    - #### itemLoaded

          public void itemLoaded​(ClusterRepoItem item)

    - #### itemChanged

          public boolean itemChanged​(ClusterRepoItem oldItem,
                                     ClusterRepoItem newItem)

      Overrides:
        `itemChanged` in class `ConfigRepository<ClusterRepoItem>`

    - #### shutdown

          public java.lang.String shutdown()

      Specified by:
        `shutdown` in interface `ShutdownHook`

    - #### storeItem

          public void storeItem​(ClusterRepoItem item)

    - #### initialize

          public void initialize()

      Description copied from interface: `Initializable`
      Method will be called, when bean will be created, configured and ready to use.
      Specified by:
        `initialize` in interface `Initializable`
      Overrides:
        `initialize` in class `ConfigRepository<ClusterRepoItem>`

    - #### beforeUnregister

          public void beforeUnregister()

      Description copied from interface: `UnregisterAware`
      Method called before bean unregister.
      Specified by:
        `beforeUnregister` in interface `UnregisterAware`
      Overrides:
        `beforeUnregister` in class `ConfigRepository<ClusterRepoItem>`

    - #### removeObsoloteItems

          protected void removeObsoloteItems​(long factor)