anthill.storage.impl
Class MemoryStorage

java.lang.Object
  |
  +--anthill.storage.impl.MemoryStorage
All Implemented Interfaces:
Clearable, GenericStorage, ResourceManager, Storage

public class MemoryStorage
extends Object
implements GenericStorage

The MemoryStorage is a simple implementation of the generic storage which keeps resources in memory.

Implementation note: currently, no check on the actual memory occupation of an object is performed; this implementation use the size() field of the object to obtain the length of the object. Future implementations for real deployment will include this additional check.

Version:
$Revision: 1.8 $
Author:
Alberto Montresor

Field Summary
static String PAR_CAPACITY
          The identifier of the configuration parameter
 
Fields inherited from interface anthill.storage.Storage
DOC_STORAGE, PHR_STORAGE, URL_STORAGE
 
Constructor Summary
MemoryStorage(Factory factory, String name)
          Constructor for a memory capacity object
 
Method Summary
 void addResource(Object key, Resource resource)
          Adds a resource to the storage and associates it to the specified key.
 void clear()
          Restores 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 identified by the given key.
 Iterator iterator()
          Returns the complete set of resources stored in this storage object using an iterator.
 void removeResource(Object key)
          Removes a resource from the storage.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PAR_CAPACITY

public static final String PAR_CAPACITY
The identifier of the configuration parameter

See Also:
Constant Field Values
Constructor Detail

MemoryStorage

public MemoryStorage(Factory factory,
                     String name)
Constructor for a memory capacity object

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()
Restores 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 identified by the given 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.

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.

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 a resource from the storage.

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

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