tigase.db
Interface ComponentRepository<Item extends RepositoryItem>

Type Parameters:
Item - An element stored in the component repository.
All Superinterfaces:
Iterable<Item>
All Known Subinterfaces:
ConfigRepositoryIfc
All Known Implementing Classes:
CompConfigRepository, CompDBRepository, CompSQLRepository, ConfigRepository, ConfigSQLRepository, ConfigurationCache, ConfigXMLRepository, UserRepoRepository, VhostConfigRepository, VHostJDBCRepository

public interface ComponentRepository<Item extends RepositoryItem>
extends Iterable<Item>

A convenience interface for a unified access to component specific repository data. This is not intended to keep huge number of elements. Rather then it is more like for storing Component dynamic configuration data. In simple cases this data can be stored in configuration file, in more complex cases it can be a database represented by UserRepository or even something else.

The repository is intended to store elements of a single type only. Each element is identified by a unique key. All elements are cached in memory for a fast retrieval so this kind of repository is recommended for small data only when you need very fast and efficient access to all the information.
Some implementations however may behave differently and not cache all the repository items in memory.

Created: Oct 3, 2009 1:46:25 PM

Version:
$Rev: 1985 $
Author:
Artur Hefczyc

Field Summary
static String COMP_REPO_BIND
           
 
Method Summary
 void addItem(Item item)
          The method adds a new or updates existing Item in the repository.
 Collection<Item> allItems()
          Retuns 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 getDefaults(Map<String,Object> defs, Map<String,Object> params)
          The method is called to obtain defualt 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.
 Item getItem(String key)
          The method returns all item configuration parameters for a key or null if the item does not exist in the repository.
 Item getItemInstance()
          Creates a new, uninitialized instance of the repository Item.
 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 setProperties(Map<String,Object> properties)
          The method is called to set configuration for this repository implementation.
 int size()
          The method returns number of itens in the repository.
 void store()
          The method is called to store all data in the database.
 
Methods inherited from interface java.lang.Iterable
iterator
 

Field Detail

COMP_REPO_BIND

static final String COMP_REPO_BIND
See Also:
Constant Field Values
Method Detail

getDefaults

void getDefaults(Map<String,Object> defs,
                 Map<String,Object> params)
The method is called to obtain defualt 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 adjustements.

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.

setProperties

void setProperties(Map<String,Object> properties)
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.

Parameters:
properties - a Map with configuration settings. Content of this Map must not be modified. This read-only collection.

removeItem

void removeItem(String key)
                throws TigaseDBException
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 availble in the component repository.

Parameters:
key - a String with domain name to remove.
Throws:
TigaseDBException

addItem

void addItem(Item item)
             throws TigaseDBException
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 permamnent storage.

Parameters:
item - a Item with all it's configuration parameters.
Throws:
TigaseDBException

getItem

Item getItem(String key)
The method returns all item configuration parameters for a key or null if the item does not exist in the repository.

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.

contains

boolean contains(String key)
The method checks whether the item is stored in the repository.

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.

reload

void reload()
            throws TigaseDBException
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.

Throws:
TigaseDBException

store

void store()
           throws TigaseDBException
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.

Throws:
TigaseDBException

size

int size()
The method returns number of itens in the repository.

Returns:
an int value with number of items in the repository.

allItems

Collection<Item> allItems()
                                                 throws TigaseDBException
Retuns a collection with all items stored in the repository.

Returns:
Throws:
TigaseDBException

getItemInstance

Item getItemInstance()
Creates a new, uninitialized instance of the repository Item.

Returns:
a new, uninitialized instance of the repository Item.


Copyright © 2001-2006 Tigase Developers Team. All rights Reserved.