package org.qrone.mongo;
import java.util.Hashtable;
import java.util.Map;
import org.mozilla.javascript.Scriptable;
import org.qrone.database.DatabaseService;
import org.qrone.database.DatabaseTable;
import org.qrone.r7.script.AbstractScriptable;
import com.mongodb.DB;
public class MongoDatabaseService extends AbstractScriptable implements DatabaseService{
private String domain;
private DB db;
private Map<String, MongoTable> map = new Hashtable<String, MongoTable>();
public MongoDatabaseService(DB db, String domain){
this.db = db;
this.domain = domain;
}
@Override
public DatabaseTable getCollection(String name) {
MongoTable t = map.get(name);
if(t == null){
t = new MongoTable(db.getCollection(domain + "/" + name));
map.put(name, t);
}
return t;
}
@Override
public Object get(String key, Scriptable start) {
return getCollection(key);
}
@Override
public Object[] getIds() {
return map.keySet().toArray(new Object[map.size()]);
}
}