Package tigase.db.comp
Class ConfigRepository<Item extends RepositoryItem>
java.lang.Object
tigase.db.comp.ConfigRepository<Item>
- All Implemented Interfaces:
Iterable<Item>
,ComponentRepository<Item>
,Repository
,Initializable
,UnregisterAware
- Direct Known Subclasses:
ClConConfigRepository
,CompConfigRepository
,UserRepoRepository
public abstract class ConfigRepository<Item extends RepositoryItem>
extends Object
implements ComponentRepository<Item>, Initializable, UnregisterAware
Created: Oct 3, 2009 2:58:41 PM
- Author:
- Artur Hefczyc
-
Nested Class Summary
Nested classes/interfaces inherited from interface tigase.db.Repository
Repository.Meta, Repository.SchemaId
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected long
protected int
Fields inherited from interface tigase.db.comp.ComponentRepository
COMP_REPO_BIND
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
The method adds a new or updates existing Item in the repository.void
addItemNoStore
(Item item) The method adds a new or updates existing Item.void
addRepoChangeListener
(RepositoryChangeListenerIfc<Item> repoChangeListener) Adds a listener for repository Item change.allItems()
Returns a collection with all items stored in the repository.void
Method called before bean unregister.boolean
The method checks whether the item is stored in the repository.abstract String
Item[]
String[]
Deprecated.void
Deprecated.The method returns all item configuration parameters for a key ornull
if the item does not exist in the repository.String[]
Deprecated.abstract String
Deprecated.void
Method will be called, when bean will be created, configured and ready to use.protected void
Method create instance of items Map.protected boolean
boolean
itemChanged
(Item oldItem, Item newItem) 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
removeItemNoStore
(String key) void
removeRepoChangeListener
(RepositoryChangeListenerIfc<Item> repoChangeListener) Removes a listener for repository Item change.void
setAutoloadTimer
(long delay) Sets autoload task to periodically reload data from database.void
setAutoReloadInterval
(long autoLoadInterval) void
setItemsOld
(String[] items_arr) Deprecated.void
setProperties
(Map<String, Object> properties) Deprecated.int
size()
The method returns number of items in the repository.void
store()
The method is called to store all data in the database.toString()
validateItem
(Item 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, wait, wait, wait
Methods inherited from interface tigase.db.comp.ComponentRepository
destroy, getItemInstance
Methods inherited from interface java.lang.Iterable
forEach, spliterator
Methods inherited from interface tigase.db.Repository
initRepository
-
Field Details
-
autoReloadInterval
@ConfigField(desc="Automatic items load interval (in seconds)", alias="repo-autoreload-interval") protected long autoReloadInterval -
items
-
itemsHash
protected int itemsHash
-
-
Constructor Details
-
ConfigRepository
public ConfigRepository()
-
-
Method Details
-
setAutoloadTimer
public void setAutoloadTimer(long delay) Description copied from interface:ComponentRepository
Sets autoload task to periodically reload data from database.- Specified by:
setAutoloadTimer
in interfaceComponentRepository<Item extends RepositoryItem>
- Parameters:
delay
- in seconds between each database reload.
-
setAutoReloadInterval
public void setAutoReloadInterval(long autoLoadInterval) -
addRepoChangeListener
Description copied from interface:ComponentRepository
Adds a listener for repository Item change.- Specified by:
addRepoChangeListener
in interfaceComponentRepository<Item extends RepositoryItem>
-
removeRepoChangeListener
Description copied from interface:ComponentRepository
Removes a listener for repository Item change.- Specified by:
removeRepoChangeListener
in interfaceComponentRepository<Item extends RepositoryItem>
-
toString
-
getConfigKey
-
getDefaultItems
-
getDefaultPropetyItems
Deprecated. -
getPropertyKey
Deprecated. -
addItem
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 interfaceComponentRepository<Item extends RepositoryItem>
- Parameters:
item
- aItem
with all it's configuration parameters.
-
addItemNoStore
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 interfaceComponentRepository<Item extends RepositoryItem>
- Parameters:
item
- aItem
with all it's configuration parameters.
-
itemChanged
-
allItems
Description copied from interface:ComponentRepository
Returns a collection with all items stored in the repository.- Specified by:
allItems
in interfaceComponentRepository<Item extends RepositoryItem>
-
contains
Description copied from interface:ComponentRepository
The method checks whether the item is stored in the repository.- Specified by:
contains
in interfaceComponentRepository<Item extends RepositoryItem>
- Parameters:
key
- aString
with key to search for.- Returns:
- a
boolean
valuetrue
if the item exists in the repository orfalse
of it does not.
-
getDefaults
Deprecated.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 interfaceComponentRepository<Item extends RepositoryItem>
- Parameters:
defs
- is aMap
collection where all repository configuration defaults must be put.params
- is aMap
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
Description copied from interface:ComponentRepository
The method returns all item configuration parameters for a key ornull
if the item does not exist in the repository.- Specified by:
getItem
in interfaceComponentRepository<Item extends RepositoryItem>
- Parameters:
key
- aString
with item identifier to search for.- Returns:
- a
Item
for a given key ornull
if the item is not in the repository.
-
getItemsOld
Deprecated. -
setItemsOld
Deprecated. -
iterator
- Specified by:
iterator
in interfaceIterable<Item extends RepositoryItem>
-
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 interfaceComponentRepository<Item extends RepositoryItem>
-
removeItem
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 interfaceComponentRepository<Item extends RepositoryItem>
- Parameters:
key
- aString
with domain name to remove.
-
removeItemNoStore
- Specified by:
removeItemNoStore
in interfaceComponentRepository<Item extends RepositoryItem>
-
setProperties
Deprecated.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 interfaceComponentRepository<Item extends RepositoryItem>
- Parameters:
properties
- aMap
with configuration settings. Content of thisMap
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 interfaceComponentRepository<Item extends RepositoryItem>
- 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 interfaceComponentRepository<Item extends RepositoryItem>
-
validateItem
Description copied from interface:ComponentRepository
Performs Item validation to check whether it meets the repository policy. If validation is successful the method returnsnull
, otherwise it returns an error description.- Specified by:
validateItem
in interfaceComponentRepository<Item extends RepositoryItem>
- Parameters:
item
- is anItem
object to perform validation checking upon.- Returns:
null
on success and an error message otherwise.
-
beforeUnregister
public void beforeUnregister()Description copied from interface:UnregisterAware
Method called before bean unregister.- Specified by:
beforeUnregister
in interfaceUnregisterAware
-
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 interfaceInitializable
-
initItemsMap
protected void initItemsMap()Method create instance of items Map. By overriding it it's possible to change implementation and it's settings. -
isInitialized
protected boolean isInitialized()
-