CacheEngine.java
Upload User: gdxydsw
Upload Date: 2019-01-29
Package Size: 16721k
Code Size: 3k
Category:

Java Develop

Development Platform:

Java

  1. /*
  2.  * Copyright (c) JForum Team
  3.  * All rights reserved.
  4.  * 
  5.  * Redistribution and use in source and binary forms, 
  6.  * with or without modification, are permitted provided 
  7.  * that the following conditions are met:
  8.  * 
  9.  * 1) Redistributions of source code must retain the above 
  10.  * copyright notice, this list of conditions and the 
  11.  * following  disclaimer.
  12.  * 2)  Redistributions in binary form must reproduce the 
  13.  * above copyright notice, this list of conditions and 
  14.  * the following disclaimer in the documentation and/or 
  15.  * other materials provided with the distribution.
  16.  * 3) Neither the name of "Rafael Steil" nor 
  17.  * the names of its contributors may be used to endorse 
  18.  * or promote products derived from this software without 
  19.  * specific prior written permission.
  20.  * 
  21.  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT 
  22.  * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
  23.  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 
  24.  * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
  25.  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
  26.  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 
  27.  * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE 
  28.  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
  29.  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
  30.  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
  31.  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 
  32.  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
  33.  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 
  34.  * IN CONTRACT, STRICT LIABILITY, OR TORT 
  35.  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
  36.  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
  37.  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
  38.  * 
  39.  * Created on Jan 13, 2005 5:58:36 PM
  40.  * The JForum Project
  41.  * http://www.jforum.net
  42.  */
  43. package net.jforum.cache;
  44. import java.util.Collection;
  45. /**
  46.  * @author Rafael Steil
  47.  * @version $Id: CacheEngine.java,v 1.11 2006/08/20 22:47:56 rafaelsteil Exp $
  48.  */
  49. public interface CacheEngine
  50. {
  51. public static final String DUMMY_FQN = "";
  52. public static final String NOTIFICATION = "notification";
  53. /**
  54.  * Inits the cache engine. 
  55.  */
  56. public void init();
  57. /**
  58.  * Stops the cache engine
  59.  */
  60. public void stop();
  61. /**
  62.  * Adds a new object to the cache. 
  63.  * The fqn will be set as the value of {@link #DUMMY_FQN}
  64.  * 
  65.  * @param key The key to associate with the object. 
  66.  * @param value The object to cache
  67.  */
  68. public void add(String key, Object value);
  69. /**
  70.  * 
  71.  * Adds a new object to the cache.
  72.  * 
  73.  * @param fqn The fully qualified name of the cache. 
  74.  * @param key The key to associate with the object
  75.  * @param value The object to cache
  76.  */
  77. public void add(String fqn, String key, Object value);
  78. /**
  79.  * Gets some object from the cache.
  80.  * 
  81.  * @param fqn The fully qualified name associated with the key
  82.  * @param key The key to get
  83.  * @return The cached object, or <code>null</code> if no entry was found
  84.  */
  85. public Object get(String fqn, String key);
  86. /**
  87.  * Gets some object from the cache.
  88.  * 
  89.  * @param fqn The fqn tree to get
  90.  * @return The cached object, or <code>null</code> if no entry was found
  91.  */
  92. public Object get(String fqn);
  93. /**
  94.  * Gets all values from some given FQN.
  95.  * 
  96.  * @param fqn String
  97.  * @return Collection
  98.  */
  99. public Collection getValues(String fqn);
  100. /**
  101.  * Removes an entry from the cache.
  102.  * 
  103.  * @param fqn The fully qualified name associated with the key
  104.  * @param key The key to remove
  105.  */
  106. public void remove(String fqn, String key);
  107. /**
  108.  * Removes a complete note from the cache
  109.  * @param fqn The fqn to remove
  110.  */
  111. public void remove(String fqn);
  112. }