package com.pugh.sockso.cache;
import com.google.inject.Singleton;
import java.util.HashMap;
import java.util.Set;
import org.apache.log4j.Logger;
/**
* The object cache implements an in memory data store
*
*/
@Singleton
public class ObjectCache extends TimedCache {
private static final Logger log = Logger.getLogger( ObjectCache.class );
private HashMap<String,CachedObject> data;
/**
* Create a new object cache
*
*/
public ObjectCache() {
data = new HashMap<String,CachedObject>();
}
/**
* Does a raw read on the internal data store
*
* @param key
*
* @return
*
*/
protected synchronized CachedObject readRaw( final String key ) {
return data.get( key );
}
/**
* Puts a cached object in the data cache
*
* @param key
* @param object
*
*/
protected void writeRaw( final String key, final CachedObject object ) {
data.put( key, object );
}
/**
* Returns an enumeration of all the keys in the cache
*
* @return
*
*/
public Set<String> getKeys() {
return data.keySet();
}
/**
* Deletes a key and it's value from the cache
*
* @param key
*
*/
public void delete( final String key ) {
data.remove( key );
}
}