package org.qrone.mongo; import java.util.Map; import org.qrone.database.DatabaseTable; import org.qrone.r7.script.Scriptables; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.mongodb.BasicDBObject; import com.mongodb.DBCollection; public class MongoTable implements DatabaseTable { private static Logger log = LoggerFactory.getLogger(MongoTable.class); private DBCollection coll; public MongoTable(DBCollection coll) { this.coll = coll; } public String update(Object o, Object o2) { return update(Scriptables.asMap(o), Scriptables.asMap(o2)); } public String update(Map o, Map o2) { BasicDBObject dbo = new BasicDBObject(o); log.debug("Mongod UPDATE (collection:{})", coll); coll.update(dbo,new BasicDBObject(o2)); return dbo.get("_id").toString(); } public String save(Object o) { return save(Scriptables.asMap(o)); } @Override public String save(Map o) { BasicDBObject dbo = new BasicDBObject(o); log.debug("Mongod SAVE (collection:{})", coll); coll.save(dbo); return dbo.get("_id").toString(); } public String insert(Object o) { return insert(Scriptables.asMap(o)); } @Override public String insert(Map o) { BasicDBObject dbo = new BasicDBObject(o); log.debug("Mongod INSERT (collection:{})", coll); coll.insert(dbo); return dbo.get("_id").toString(); } @Override public MongoCursor find() { log.debug("Mongod FIND (collection:{})", coll); return new MongoCursor(coll.find()); } public MongoCursor find(Object o) { return find(Scriptables.asMap(o)); } @Override public MongoCursor find(Map o) { log.debug("Mongod FIND (collection:{})", coll); return new MongoCursor(coll.find(new BasicDBObject(o))); } public MongoCursor find(Object o, Object p) { return find(Scriptables.asMap(o),Scriptables.asMap(p)); } public MongoCursor find(Map o, Map p) { log.debug("Mongod FIND (collection:{})", coll); return new MongoCursor(coll.find(new BasicDBObject(o),new BasicDBObject(p))); } public void remove(Object o) { remove(Scriptables.asMap(o)); } @Override public void remove(Map o) { log.debug("Mongod REMOVE (collection:{})", coll); coll.remove(new BasicDBObject(o)); } @Override public void remove(String id) { log.debug("Mongod REMOVE (collection:{})", coll); coll.remove(new BasicDBObject("_id", id)); } @Override public void drop() { log.debug("Mongod DROP (collection:{})", coll); coll.drop(); } }