package esl.datastructures.util; import com.mongodb.BasicDBObject; import esl.cuenet.query.drivers.mongodb.MongoDB; import java.util.HashMap; public class GeocodingCache extends MongoDB { public GeocodingCache() { super("geo"); } public void addToCache(String location, BasicDBObject gcInfo) { DBWriter writer = startWriter("geocode_cache"); BasicDBObject gcObject = new BasicDBObject("location", location); gcObject.put("gc", gcInfo); writer.write(gcObject); } public BasicDBObject getFromCache(String location) { DBReader reader = startReader("geocode_cache"); reader.query(new BasicDBObject("location", location)); while(reader.hasNext()) { BasicDBObject dbo = (BasicDBObject) reader.next(); BasicDBObject gcInfo = (BasicDBObject) dbo.get("gc"); if (gcInfo != null) return gcInfo; } return null; } public HashMap<String, BasicDBObject> getAll() { DBReader reader = startReader("geocode_cache"); reader.query(new BasicDBObject()); HashMap<String, BasicDBObject> map = new HashMap<String, BasicDBObject>(200); while(reader.hasNext()) { BasicDBObject dbo = (BasicDBObject) reader.next(); String location = dbo.getString("location"); BasicDBObject gcInfo = (BasicDBObject) dbo.get("gc"); map.put(location, gcInfo); } return map; } }