/**
* Copyright (C) 2004 Orbeon, Inc.
*
* This program is free software; you can redistribute it and/or modify it under the terms of the
* GNU Lesser General Public License as published by the Free Software Foundation; either version
* 2.1 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
*
* The full text of the license is available at http://www.gnu.org/copyleft/lesser.html
*/
package org.orbeon.oxf.resources;
import org.w3c.dom.Node;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
public class ResourceCache {
/**
* Stores keys in the form
* /one/two/three --> xml document
*/
protected Map cache = null;
protected Map lastModified = null;
public ResourceCache() {
cache = new HashMap();
lastModified = new HashMap();
}
public void addDocument(String key, Node doc, Date last) {
cache.put(key, doc);
lastModified.put(key, last);
}
public Node getDocument(String key) {
return (Node) cache.get(key);
}
public void removeDocument(String key) {
cache.remove(key);
lastModified.remove(key);
}
public void deleteItemOlder(String key, Date date) {
Date last = (Date) lastModified.get(key);
if (date.after(last)) {
lastModified.remove(key);
cache.remove(key);
}
}
public Date getLastModified(String key) {
return (Date) lastModified.get(key);
}
}