001: /*
002: * Copyright (c)Rafael Steil
003: * All rights reserved.
004: *
005: * Redistribution and use in source and binary forms,
006: * with or without modification, are permitted provided
007: * that the following conditions are met:
008: *
009: * 1) Redistributions of source code must retain the above
010: * copyright notice, this list of conditions and the
011: * following disclaimer.
012: * 2) Redistributions in binary form must reproduce the
013: * above copyright notice, this list of conditions and
014: * the following disclaimer in the documentation and/or
015: * other materials provided with the distribution.
016: * 3) Neither the name of "Rafael Steil" nor
017: * the names of its contributors may be used to endorse
018: * or promote products derived from this software without
019: * specific prior written permission.
020: *
021: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
022: * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
023: * EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
024: * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
025: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR
026: * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
027: * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
028: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
029: * EXEMPLARY, OR CONSEQUENTIAL DAMAGES
030: * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
031: * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
032: * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
033: * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
034: * IN CONTRACT, STRICT LIABILITY, OR TORT
035: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
036: * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
037: * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
038: *
039: * Created on Feb 1, 2005 7:30:35 PM
040: * The JForum Project
041: * http://www.jforum.net
042: */
043: package net.jforum.cache;
044:
045: import java.util.ArrayList;
046: import java.util.Collection;
047: import java.util.HashMap;
048: import java.util.Map;
049:
050: /**
051: * @author Rafael Steil
052: * @version $Id: DefaultCacheEngine.java,v 1.9 2005/09/25 02:40:28 rafaelsteil Exp $
053: */
054: public class DefaultCacheEngine implements CacheEngine {
055: private Map cache = new HashMap();
056:
057: /**
058: * @see net.jforum.cache.CacheEngine#add(java.lang.String, java.lang.Object)
059: */
060: public void add(String key, Object value) {
061: this .cache.put(key, value);
062: }
063:
064: /**
065: * @see net.jforum.cache.CacheEngine#add(java.lang.String, java.lang.String, java.lang.Object)
066: */
067: public void add(String fqn, String key, Object value) {
068: Map m = (Map) this .cache.get(fqn);
069: if (m == null) {
070: m = new HashMap();
071: }
072:
073: m.put(key, value);
074: this .cache.put(fqn, m);
075: }
076:
077: /**
078: * @see net.jforum.cache.CacheEngine#get(java.lang.String, java.lang.String)
079: */
080: public Object get(String fqn, String key) {
081: Map m = (Map) this .cache.get(fqn);
082: if (m == null) {
083: return null;
084: }
085:
086: return m.get(key);
087: }
088:
089: /**
090: * @see net.jforum.cache.CacheEngine#get(java.lang.String)
091: */
092: public Object get(String fqn) {
093: return this .cache.get(fqn);
094: }
095:
096: /**
097: * @see net.jforum.cache.CacheEngine#getValues(java.lang.String)
098: */
099: public Collection getValues(String fqn) {
100: Map m = (Map) this .cache.get(fqn);
101: if (m == null) {
102: return new ArrayList();
103: }
104:
105: return m.values();
106: }
107:
108: /**
109: * @see net.jforum.cache.CacheEngine#init()
110: */
111: public void init() {
112: this .cache = new HashMap();
113: }
114:
115: /**
116: * @see net.jforum.cache.CacheEngine#stop()
117: */
118: public void stop() {
119: }
120:
121: /**
122: * @see net.jforum.cache.CacheEngine#remove(java.lang.String, java.lang.String)
123: */
124: public void remove(String fqn, String key) {
125: Map m = (Map) this .cache.get(fqn);
126: if (m != null) {
127: m.remove(key);
128: }
129: }
130:
131: /**
132: * @see net.jforum.cache.CacheEngine#remove(java.lang.String)
133: */
134: public void remove(String fqn) {
135: this.cache.remove(fqn);
136: }
137: }
|