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

Java Develop

Development Platform:

Java

  1. /*
  2.  * Copyright (c)Rafael Steil
  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 Feb 1, 2005 7:30:35 PM
  40.  * The JForum Project
  41.  * http://www.jforum.net
  42.  */
  43. package net.jforum.cache;
  44. import java.util.ArrayList;
  45. import java.util.Collection;
  46. import java.util.HashMap;
  47. import java.util.Map;
  48. /**
  49.  * @author Rafael Steil
  50.  * @version $Id: DefaultCacheEngine.java,v 1.9 2005/09/25 02:40:28 rafaelsteil Exp $
  51.  */
  52. public class DefaultCacheEngine implements CacheEngine
  53. {
  54. private Map cache = new HashMap();
  55. /**
  56.  * @see net.jforum.cache.CacheEngine#add(java.lang.String, java.lang.Object)
  57.  */
  58. public void add(String key, Object value)
  59. {
  60. this.cache.put(key, value);
  61. }
  62. /**
  63.  * @see net.jforum.cache.CacheEngine#add(java.lang.String, java.lang.String, java.lang.Object)
  64.  */
  65. public void add(String fqn, String key, Object value)
  66. {
  67. Map m = (Map)this.cache.get(fqn);
  68. if (m == null) {
  69. m = new HashMap();
  70. }
  71. m.put(key, value);
  72. this.cache.put(fqn, m);
  73. }
  74. /**
  75.  * @see net.jforum.cache.CacheEngine#get(java.lang.String, java.lang.String)
  76.  */
  77. public Object get(String fqn, String key)
  78. {
  79. Map m = (Map)this.cache.get(fqn);
  80. if (m == null) {
  81. return null;
  82. }
  83. return m.get(key);
  84. }
  85. /**
  86.  * @see net.jforum.cache.CacheEngine#get(java.lang.String)
  87.  */
  88. public Object get(String fqn)
  89. {
  90. return this.cache.get(fqn);
  91. }
  92. /**
  93.  * @see net.jforum.cache.CacheEngine#getValues(java.lang.String)
  94.  */
  95. public Collection getValues(String fqn)
  96. {
  97. Map m = (Map)this.cache.get(fqn);
  98. if (m == null) {
  99. return new ArrayList();
  100. }
  101. return m.values();
  102. }
  103. /**
  104.  * @see net.jforum.cache.CacheEngine#init()
  105.  */
  106. public void init()
  107. {
  108. this.cache = new HashMap();
  109. }
  110. /**
  111.  * @see net.jforum.cache.CacheEngine#stop()
  112.  */
  113. public void stop() {}
  114. /**
  115.  * @see net.jforum.cache.CacheEngine#remove(java.lang.String, java.lang.String)
  116.  */
  117. public void remove(String fqn, String key)
  118. {
  119. Map m = (Map)this.cache.get(fqn);
  120. if (m != null) {
  121. m.remove(key);
  122. }
  123. }
  124. /**
  125.  * @see net.jforum.cache.CacheEngine#remove(java.lang.String)
  126.  */
  127. public void remove(String fqn)
  128. {
  129. this.cache.remove(fqn);
  130. }
  131. }