org.apache.ojb.broker.cache
Class ObjectCacheLocalDefaultImpl

java.lang.Object
  extended byorg.apache.ojb.broker.cache.ObjectCacheLocalDefaultImpl
All Implemented Interfaces:
ObjectCache

public class ObjectCacheLocalDefaultImpl
extends java.lang.Object
implements ObjectCache

Simple, flexible local ObjectCache implementation using a HashMap to cache given objects. The cache uses soft-references which allows objects (softly) referenced by the cache to be reclaimed by the Java Garbage Collector when they are not longer referenced elsewhere.

Implementation configuration properties:

Property Key Property Values
timeout Lifetime of the cached objects in seconds. If expired the cached object was not returned on lookup call (and removed from cache).

Version:
$Id: ObjectCacheLocalDefaultImpl.java,v 1.3 2003/12/16 21:12:50 brj Exp $
Author:
Thomas Mahler, Armin Waibel

Nested Class Summary
(package private)  class ObjectCacheLocalDefaultImpl.CacheEntry
           
 
Field Summary
protected  java.util.Map objectTable
          the hashtable holding all cached object
 
Constructor Summary
ObjectCacheLocalDefaultImpl(PersistenceBroker broker, java.util.Properties prop)
           
 
Method Summary
 void cache(Identity oid, java.lang.Object obj)
          Makes object persistent to the Objectcache.
 void clear()
          Clear ObjectCache.
 java.lang.Object lookup(Identity oid)
          Lookup object with Identity oid in objectTable.
 void remove(Identity oid)
          Removes an Object from the cache.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

objectTable

protected java.util.Map objectTable
the hashtable holding all cached object

Constructor Detail

ObjectCacheLocalDefaultImpl

public ObjectCacheLocalDefaultImpl(PersistenceBroker broker,
                                   java.util.Properties prop)
Method Detail

clear

public void clear()
Clear ObjectCache. I.e. remove all entries for classes and objects.

Specified by:
clear in interface ObjectCache

cache

public void cache(Identity oid,
                  java.lang.Object obj)
Makes object persistent to the Objectcache. I'm using soft-references to allow gc reclaim unused objects even if they are still cached.

Specified by:
cache in interface ObjectCache

lookup

public java.lang.Object lookup(Identity oid)
Lookup object with Identity oid in objectTable. Returns null if no matching id is found

Specified by:
lookup in interface ObjectCache

remove

public void remove(Identity oid)
Removes an Object from the cache.

Specified by:
remove in interface ObjectCache
Parameters:
oid - Identity of the object to be removed.

toString

public java.lang.String toString()


Authors: Thomas Mahler and others. (C) 2000 - 2003 Apache Software Foundation
All rights reserved. Published under the Apache License.
http://db.apache.org/ojb
Version: 1.0.rc5, 2003-12-14