1 /* Open Source Java Caching Service 2 * Copyright (C) 2002 Frank Karlstrøm 3 * This library is free software; you can redistribute it and/or 4 * modify it under the terms of the GNU Lesser General Public 5 * License as published by the Free Software Foundation; either 6 * version 2.1 of the License, or (at your option) any later version. 7 * 8 * This library is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 * Lesser General Public License for more details. 12 * 13 * You should have received a copy of the GNU Lesser General Public 14 * License along with this library; if not, write to the Free Software 15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 16 * 17 * The author can be contacted by email: fjankk@users.sourceforge.net 18 */ 19 package javax.util.jcache; 20 21 import java.util.Map; 22 23 /** Interface with extra methods for special features of FKache. 24 * @author Frank Karlstrøm 25 * 26 */ 27 public interface CacheMap extends Map { 28 /** 29 * Will return an attribute object describing the current attributes 30 * associated for the region for this CacheAccess. 31 32 * @return an Attributes object for the region of this CacheAccess. 33 34 */ 35 Attributes getAttributes() ; 36 37 /** 38 * will return an attribute object describing the current attributes 39 * associated with the object name. 40 *@deprecated moved to MapAccess 41 * @param name the name of the object to get the attributes for. 42 * 43 * @return an Attributes object for the named object. 44 * 45 * @throws CacheException if an error occurs. 46 */ 47 Attributes getAttributes(Object name) throws CacheException; 48 /** 49 * Gets the object from the cache. If the object is not currently in the 50 * cache and a loader object has been registered, the object will be 51 * loaded into the cache with the arguments specified. 52 * 53 * @param name the name of the object to get. 54 * @param arguments the arguments wich is passed to the load method of the 55 * CacheLoader, if registered. 56 * 57 * @return a reference to a shared object. 58 */ 59 Object get(Object name, Object arguments); 60 /** 61 * is used to specify the attributes to associate with an object when it is 62 * loaded. This can include the loader object, cache event handlers, and 63 * spesific attributes for the object such as distribute, spool, etc. 64 * Attributes (with the exception of the CacheLoader object itself) can 65 * also be specified within the load method of the CacheLoader object 66 * using the setAttributes method, if the attributes for an object are not 67 * defined, the attributes of the region will be used. 68 * 69 * @param name the name of the object to associate the attributes with. 70 * @param attributes the attributes to associate. 71 */ 72 public void defineObject(Object name, Attributes attributes); 73 /**Puts a object into the cache, and attach it to a group. 74 * If the group does not exist, this method will fail. 75 * If an object with the specified name, in the specified group 76 * already exists, this object is repleaced with the new object, 77 * and the old object is returned. Otherwise null is returned. 78 * @param key the key of the object 79 * @param group the group to put it in to. 80 * @param value the actual object to put into the cache. 81 * @return if an object already was in the cache in the specified group, this object is returned. 82 */ 83 public Object put(Object key, String group, Object value); 84 85 /**Removes an object from a group. 86 * @param key The object to remove. 87 * @param group The group to remove the object from. 88 * @return The removed object if any. 89 */ 90 public Object remove(Object key, String group); 91 }