- Bookmark-Objects are stored inside the kelondroObjects cache - removed superfluous classes git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@3298 6c8d7289-2bf4-0310-a012-ef5d649a1542pull/1/head
parent
9c05e2a820
commit
88fa764b64
@ -1,56 +0,0 @@
|
|||||||
//kelondroCachedObject - Cache Object for kelondroCachedObjectMap
|
|
||||||
//----------------------------------------------------------
|
|
||||||
//part of YaCy
|
|
||||||
//
|
|
||||||
// (C) 2007 by Alexander Schier
|
|
||||||
//
|
|
||||||
// last change: $LastChangedDate: $ by $LastChangedBy: $
|
|
||||||
// $LastChangedRevision: $
|
|
||||||
//
|
|
||||||
// This program is free software; you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation; either version 2 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 General Public License for more details.
|
|
||||||
//
|
|
||||||
// You should have received a copy of the GNU General Public License
|
|
||||||
// along with this program; if not, write to the Free Software
|
|
||||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
||||||
|
|
||||||
package de.anomic.kelondro;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
|
|
||||||
public class kelondroCachedObject{
|
|
||||||
protected Map map;
|
|
||||||
protected String key;
|
|
||||||
public kelondroCachedObject(){
|
|
||||||
this.map=new HashMap();
|
|
||||||
this.key="";
|
|
||||||
}
|
|
||||||
public kelondroCachedObject(Map map){
|
|
||||||
this.map=map;
|
|
||||||
this.key="";
|
|
||||||
}
|
|
||||||
public kelondroCachedObject(String key, Map map){
|
|
||||||
this.key=key;
|
|
||||||
if(map!=null)
|
|
||||||
this.map=map;
|
|
||||||
else
|
|
||||||
this.map=new HashMap();
|
|
||||||
}
|
|
||||||
public Map toMap(){
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
public String getKey(){
|
|
||||||
return key;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,111 +0,0 @@
|
|||||||
//kelondroCachedObjectMap - build an object cache over a kelondroMap
|
|
||||||
//----------------------------------------------------------
|
|
||||||
//part of YaCy
|
|
||||||
//
|
|
||||||
// (C) 2007 by Alexander Schier
|
|
||||||
//
|
|
||||||
// last change: $LastChangedDate: $ by $LastChangedBy: $
|
|
||||||
// $LastChangedRevision: $
|
|
||||||
//
|
|
||||||
// This program is free software; you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation; either version 2 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 General Public License for more details.
|
|
||||||
//
|
|
||||||
// You should have received a copy of the GNU General Public License
|
|
||||||
// along with this program; if not, write to the Free Software
|
|
||||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
||||||
|
|
||||||
package de.anomic.kelondro;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Iterator;
|
|
||||||
|
|
||||||
public class kelondroCachedObjectMap {
|
|
||||||
private kelondroMapObjects db;
|
|
||||||
private HashMap cache;
|
|
||||||
public kelondroCachedObjectMap(kelondroMapObjects db){
|
|
||||||
this.db=db;
|
|
||||||
cache=new HashMap();
|
|
||||||
}
|
|
||||||
public void close() throws IOException{
|
|
||||||
db.close();
|
|
||||||
}
|
|
||||||
public void set(String key, kelondroCachedObject entry){
|
|
||||||
cache.put(key, entry);
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
* this gives you a Entry, if its cached, and a Map, if not.
|
|
||||||
*/
|
|
||||||
public Object get(String key) throws IOException{
|
|
||||||
if(cache.containsKey(key))
|
|
||||||
return cache.get(key);
|
|
||||||
else
|
|
||||||
return db.get(key);
|
|
||||||
}
|
|
||||||
public void setDirect(String key, kelondroCachedObject entry) throws IOException{
|
|
||||||
db.set(key, entry.toMap());
|
|
||||||
}
|
|
||||||
public void flushCache() throws IOException{
|
|
||||||
syncCache();
|
|
||||||
cache=new HashMap();
|
|
||||||
}
|
|
||||||
public void flushEntry(String key) throws IOException{
|
|
||||||
syncEntry(key);
|
|
||||||
cache.remove(key);
|
|
||||||
}
|
|
||||||
public void syncEntry(String key) throws IOException{
|
|
||||||
if(cache.containsKey(key))
|
|
||||||
this.setDirect(key, (kelondroCachedObject)cache.get(key));
|
|
||||||
}
|
|
||||||
public void syncCache() throws IOException{
|
|
||||||
Iterator it=this.cache.keySet().iterator();
|
|
||||||
String key;
|
|
||||||
while(it.hasNext()){
|
|
||||||
key=(String)it.next();
|
|
||||||
this.setDirect(key, (kelondroCachedObject)cache.get(key));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public boolean remove(String key){
|
|
||||||
if(cache.containsKey(key))
|
|
||||||
cache.remove(key);
|
|
||||||
try {
|
|
||||||
db.remove(key);
|
|
||||||
return true;
|
|
||||||
} catch (IOException e) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public Iterator cacheIterator(){
|
|
||||||
return this.cache.keySet().iterator();
|
|
||||||
}
|
|
||||||
public Iterator dbOnlyKeys(boolean up) throws IOException{
|
|
||||||
return this.db.keys(up, false);
|
|
||||||
}
|
|
||||||
public Iterator dbOnlyKeys(boolean up, boolean rotating) throws IOException{
|
|
||||||
return this.db.keys(up, rotating);
|
|
||||||
}
|
|
||||||
public Iterator keys(boolean up, boolean rotating) throws IOException{
|
|
||||||
flushCache();
|
|
||||||
return dbOnlyKeys(up, rotating);
|
|
||||||
}
|
|
||||||
public Iterator keys(boolean up) throws IOException{
|
|
||||||
return keys(up, false);
|
|
||||||
}
|
|
||||||
public int size(boolean flushed){
|
|
||||||
if(flushed)
|
|
||||||
try {
|
|
||||||
flushCache();
|
|
||||||
} catch (IOException e) {}
|
|
||||||
return this.db.size();
|
|
||||||
}
|
|
||||||
public int size(){
|
|
||||||
return size(false);
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in new issue