/**
* Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved.
* Licensed under the terms of the Eclipse Public License (EPL).
* Please see the license.txt included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
package com.aptana.shared_core.cache;
/**
* Defines the interface for a cache
*/
public interface Cache<Key, Val> {
/**
* This method returns the value for the given key.
*/
public Val getObj(Key o);
/**
* This method removes some key from the cache
*/
public void remove(Key key);
/**
* Adds some value to the cache
*/
public void add(Key key, Val n);
/**
* If the cache has some process to remove stale entries, this is the time to do so.
*
* Note that this interface does not include synchronization, so, clients should do the synchronization themselves.
*/
public void removeStaleEntries();
/**
* Clears the cache.
*/
public void clear();
}