anthill.storage.impl
Class LRUKeyStorage

java.lang.Object
  |
  +--anthill.storage.impl.LRUKeyStorage
All Implemented Interfaces:
Clearable, GenericStorage, ResourceManager, Storage
Direct Known Subclasses:
LRUQueryStorage

public class LRUKeyStorage
extends Object
implements GenericStorage

Implementation of an LRU based key storage. This is a wrapper class for storing resources based on using a key to access the resources.

Version:
$Revision: 1.9 $
Author:
Hein Meling
, Alberto Montresor

Field Summary
protected  Factory factory
          Factory used to instantiate objects
protected  HashList list
          HashList use to implement the LRU policy of the LRU key storage.
protected  String name
          Name used to identify this component in the factory
static String PAR_STORAGENAME
          The identifier of the configuration parameter
protected  GenericStorage storage
          A generic storage.
 
Fields inherited from interface anthill.storage.Storage
DOC_STORAGE, PHR_STORAGE, URL_STORAGE
 
Constructor Summary
LRUKeyStorage()
           
LRUKeyStorage(Factory factory, String name)
           
 
Method Summary
 void addResource(Object key, Resource resource)
          Adds a resource to the storage and associates it to the specified key.
 void clear()
          Restore the object to its initial state
 boolean containsResource(Object key)
          Returns true if the resource associated to key is contained in the storage, false otherwise.
 long getCapacity()
          Returns the initial capacity of this generic storage.
 long getRemainingCapacity()
          Returns the remaining capacity of this generic storage.
 Resource getResource(Object key)
          Returns the resource associated with the specified key.
 Iterator iterator()
          Returns the complete set of resources stored in this storage object using an iterator.
 void removeResource(Object key)
          Removes the resource associated with the specified key from the storage.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PAR_STORAGENAME

public static final String PAR_STORAGENAME
The identifier of the configuration parameter

See Also:
Constant Field Values

factory

protected Factory factory
Factory used to instantiate objects


name

protected String name
Name used to identify this component in the factory


storage

protected GenericStorage storage
A generic storage.


list

protected HashList list
HashList use to implement the LRU policy of the LRU key storage.

Constructor Detail

LRUKeyStorage

public LRUKeyStorage()

LRUKeyStorage

public LRUKeyStorage(Factory factory,
                     String name)
Parameters:
factory - the factory to be used to read configuration arguments and to create other configurable objects
name - the name that is associated to this instance in the configuration file
Method Detail

clear

public void clear()
Restore the object to its initial state

Specified by:
clear in interface Clearable

containsResource

public boolean containsResource(Object key)
Returns true if the resource associated to key is contained in the storage, false otherwise.

Specified by:
containsResource in interface GenericStorage
Parameters:
key - the key to be searched
Returns:
true if the resource associated to key is contained in the storage

getResource

public Resource getResource(Object key)
Returns the resource associated with the specified key. If the key is not associated with any resource, a null value is returned.

Specified by:
getResource in interface GenericStorage
Parameters:
key - whose associated resource to retreive.
Returns:
resource with which the specified key is associated.

addResource

public void addResource(Object key,
                        Resource resource)
                 throws CapacityException
Adds a resource to the storage and associates it to the specified key. If the remaining capacity of the storage is not sufficient to store the resource, a CapacityException is thrown containing information about the remaining capacity. Method size() may be invoked on the resource to determine the amount of space required by the resource. In order to be stored on persistent storage, resource must implement the Serializable interface.

Specified by:
addResource in interface GenericStorage
Parameters:
key - the key identifying the resource
resource - the resource to be added
Throws:
CapacityException - raised if the given resource object exceeds the total available capacity for this storage.

removeResource

public void removeResource(Object key)
Removes the resource associated with the specified key from the storage.

Specified by:
removeResource in interface GenericStorage
Parameters:
key - the identifier of the resource to be removed

iterator

public Iterator iterator()
Returns the complete set of resources stored in this storage object using an iterator.

Specified by:
iterator in interface GenericStorage
Returns:
iterator representing this storage object, allowing to inspect its content.

getCapacity

public long getCapacity()
Returns the initial capacity of this generic storage.

Specified by:
getCapacity in interface GenericStorage

getRemainingCapacity

public long getRemainingCapacity()
Returns the remaining capacity of this generic storage.

Specified by:
getRemainingCapacity in interface GenericStorage