Package tigase.db.comp
Class ConfigRepository<Item extends RepositoryItem>
- java.lang.Object
-
- tigase.db.comp.ConfigRepository<Item>
-
- All Implemented Interfaces:
java.lang.Iterable<Item>,ComponentRepository<Item>,Repository,Initializable,UnregisterAware
- Direct Known Subclasses:
ClConConfigRepository,CompConfigRepository,UserRepoRepository
public abstract class ConfigRepository<Item extends RepositoryItem> extends java.lang.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
Fields Modifier and Type Field Description protected longautoReloadIntervalprotected java.util.Map<java.lang.String,Item>itemsprotected intitemsHash-
Fields inherited from interface tigase.db.comp.ComponentRepository
COMP_REPO_BIND
-
-
Constructor Summary
Constructors Constructor Description ConfigRepository()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaddItem(Item item)The method adds a new or updates existing Item in the repository.voidaddItemNoStore(Item item)The method adds a new or updates existing Item.voidaddRepoChangeListener(RepositoryChangeListenerIfc<Item> repoChangeListener)Adds a listener for repository Item change.java.util.Collection<Item>allItems()Returns a collection with all items stored in the repository.voidbeforeUnregister()Method called before bean unregister.booleancontains(java.lang.String key)The method checks whether the item is stored in the repository.abstract java.lang.StringgetConfigKey()Item[]getDefaultItems()java.lang.String[]getDefaultPropetyItems()Deprecated.voidgetDefaults(java.util.Map<java.lang.String,java.lang.Object> defs, java.util.Map<java.lang.String,java.lang.Object> params)Deprecated.ItemgetItem(java.lang.String key)The method returns all item configuration parameters for a key ornullif the item does not exist in the repository.java.lang.String[]getItemsOld()Deprecated.abstract java.lang.StringgetPropertyKey()Deprecated.voidinitialize()Method will be called, when bean will be created, configured and ready to use.protected voidinitItemsMap()Method create instance of items Map.protected booleanisInitialized()booleanitemChanged(Item oldItem, Item newItem)java.util.Iterator<Item>iterator()voidreload()This method is called to reload items from the database or other permanent storage.voidremoveItem(java.lang.String key)The method is called to remove given Item from the memory cache and permanent storage.voidremoveItemNoStore(java.lang.String key)voidremoveRepoChangeListener(RepositoryChangeListenerIfc<Item> repoChangeListener)Removes a listener for repository Item change.voidsetAutoloadTimer(long delay)Sets autoload task to periodically reload data from database.voidsetAutoReloadInterval(long autoLoadInterval)voidsetItemsOld(java.lang.String[] items_arr)Deprecated.voidsetProperties(java.util.Map<java.lang.String,java.lang.Object> properties)Deprecated.intsize()The method returns number of items in the repository.voidstore()The method is called to store all data in the database.java.lang.StringtoString()java.lang.StringvalidateItem(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 tigase.db.Repository
initRepository
-
-
-
-
Field Detail
-
autoReloadInterval
@ConfigField(desc="Automatic items load interval (in seconds)", alias="repo-autoreload-interval") protected long autoReloadInterval
-
items
protected java.util.Map<java.lang.String,Item extends RepositoryItem> items
-
itemsHash
protected int itemsHash
-
-
Method Detail
-
setAutoloadTimer
public void setAutoloadTimer(long delay)
Description copied from interface:ComponentRepositorySets autoload task to periodically reload data from database.- Specified by:
setAutoloadTimerin interfaceComponentRepository<Item extends RepositoryItem>- Parameters:
delay- in seconds between each database reload.
-
setAutoReloadInterval
public void setAutoReloadInterval(long autoLoadInterval)
-
addRepoChangeListener
public void addRepoChangeListener(RepositoryChangeListenerIfc<Item> repoChangeListener)
Description copied from interface:ComponentRepositoryAdds a listener for repository Item change.- Specified by:
addRepoChangeListenerin interfaceComponentRepository<Item extends RepositoryItem>
-
removeRepoChangeListener
public void removeRepoChangeListener(RepositoryChangeListenerIfc<Item> repoChangeListener)
Description copied from interface:ComponentRepositoryRemoves a listener for repository Item change.- Specified by:
removeRepoChangeListenerin interfaceComponentRepository<Item extends RepositoryItem>
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
getConfigKey
public abstract java.lang.String getConfigKey()
-
getDefaultItems
public Item[] getDefaultItems()
-
getDefaultPropetyItems
@Deprecated public java.lang.String[] getDefaultPropetyItems()
Deprecated.
-
getPropertyKey
@Deprecated public abstract java.lang.String getPropertyKey()
Deprecated.
-
addItem
public void addItem(Item item)
Description copied from interface:ComponentRepositoryThe 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:
addItemin interfaceComponentRepository<Item extends RepositoryItem>- Parameters:
item- aItemwith all it's configuration parameters.
-
addItemNoStore
public void addItemNoStore(Item item)
Description copied from interface:ComponentRepositoryThe 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:
addItemNoStorein interfaceComponentRepository<Item extends RepositoryItem>- Parameters:
item- aItemwith all it's configuration parameters.
-
allItems
public java.util.Collection<Item> allItems()
Description copied from interface:ComponentRepositoryReturns a collection with all items stored in the repository.- Specified by:
allItemsin interfaceComponentRepository<Item extends RepositoryItem>
-
contains
public boolean contains(java.lang.String key)
Description copied from interface:ComponentRepositoryThe method checks whether the item is stored in the repository.- Specified by:
containsin interfaceComponentRepository<Item extends RepositoryItem>- Parameters:
key- aStringwith key to search for.- Returns:
- a
booleanvaluetrueif the item exists in the repository orfalseof it does not.
-
getDefaults
@Deprecated public void getDefaults(java.util.Map<java.lang.String,java.lang.Object> defs, java.util.Map<java.lang.String,java.lang.Object> params)Deprecated.Description copied from interface:ComponentRepositoryThe 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:
getDefaultsin interfaceComponentRepository<Item extends RepositoryItem>- Parameters:
defs- is aMapcollection where all repository configuration defaults must be put.params- is aMapcollection 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 Item getItem(java.lang.String key)
Description copied from interface:ComponentRepositoryThe method returns all item configuration parameters for a key ornullif the item does not exist in the repository.- Specified by:
getItemin interfaceComponentRepository<Item extends RepositoryItem>- Parameters:
key- aStringwith item identifier to search for.- Returns:
- a
Itemfor a given key ornullif the item is not in the repository.
-
getItemsOld
@Deprecated public java.lang.String[] getItemsOld()
Deprecated.
-
setItemsOld
@Deprecated public void setItemsOld(java.lang.String[] items_arr)
Deprecated.
-
iterator
public java.util.Iterator<Item> iterator()
- Specified by:
iteratorin interfacejava.lang.Iterable<Item extends RepositoryItem>
-
reload
public void reload()
Description copied from interface:ComponentRepositoryThis 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:
reloadin interfaceComponentRepository<Item extends RepositoryItem>
-
removeItem
public void removeItem(java.lang.String key)
Description copied from interface:ComponentRepositoryThe 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:
removeItemin interfaceComponentRepository<Item extends RepositoryItem>- Parameters:
key- aStringwith domain name to remove.
-
removeItemNoStore
public void removeItemNoStore(java.lang.String key)
- Specified by:
removeItemNoStorein interfaceComponentRepository<Item extends RepositoryItem>
-
setProperties
@Deprecated public void setProperties(java.util.Map<java.lang.String,java.lang.Object> properties)
Deprecated.Description copied from interface:ComponentRepositoryThe 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:
setPropertiesin interfaceComponentRepository<Item extends RepositoryItem>- Parameters:
properties- aMapwith configuration settings. Content of thisMapmust not be modified. This read-only collection.
-
size
public int size()
Description copied from interface:ComponentRepositoryThe method returns number of items in the repository.- Specified by:
sizein interfaceComponentRepository<Item extends RepositoryItem>- Returns:
- an
intvalue with number of items in the repository.
-
store
public void store()
Description copied from interface:ComponentRepositoryThe 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:
storein interfaceComponentRepository<Item extends RepositoryItem>
-
validateItem
public java.lang.String validateItem(Item item)
Description copied from interface:ComponentRepositoryPerforms 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:
validateItemin interfaceComponentRepository<Item extends RepositoryItem>- Parameters:
item- is anItemobject to perform validation checking upon.- Returns:
nullon success and an error message otherwise.
-
beforeUnregister
public void beforeUnregister()
Description copied from interface:UnregisterAwareMethod called before bean unregister.- Specified by:
beforeUnregisterin interfaceUnregisterAware
-
initialize
public void initialize()
Description copied from interface:InitializableMethod will be called, when bean will be created, configured and ready to use.- Specified by:
initializein 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()
-
-