1   package com.trendmicro.grid.acl.ds.cache;
2   
3   import java.util.Collection;
4   import java.util.List;
5   
6   /**
7    * Defines the interface to communicate with a cache source (used to read elements from a cache).
8    *
9    * @author juergen_kellerer, 2011-03-25
10   * @version 1.0
11   */
12  public interface CacheSource<K, V> {
13  	/**
14  	 * Gets the values of the specified keys.
15  	 *
16  	 * @param keys the keys to get.
17  	 * @return a collection of cached values. The collection may contain 'null'
18  	 *         values for non-existing keys and keys that map to 'null'
19  	 */
20  	List<V> getAll(Collection<K> keys);
21  
22  	/**
23  	 * Returns true if the given key is contained.
24  	 *
25  	 * @param key the key to check.
26  	 * @return true if the given key is contained.
27  	 */
28  	boolean containsKey(K key);
29  
30  	/**
31  	 * Returns the size of the cache.
32  	 *
33  	 * @return the size of the cache.
34  	 */
35  	int size();
36  
37  	/**
38  	 * Returns true if the cache is empty.
39  	 *
40  	 * @return true if the cache is empty.
41  	 */
42  	boolean isEmpty();
43  }