package http.resource.template;
import nebula.data.DataStore;
import nebula.data.Entity;
import freemarker.template.ObjectWrapper;
import freemarker.template.SimpleCollection;
import freemarker.template.TemplateCollectionModel;
import freemarker.template.TemplateHashModel;
import freemarker.template.TemplateModel;
import freemarker.template.TemplateModelException;
import freemarker.template.TemplateModelIterator;
public class DatastoreTemplateHashModel implements TemplateHashModel, TemplateCollectionModel {
DataStore<Entity> datastore;
public DatastoreTemplateHashModel(DataStore<Entity> dataWareHouse) {
this.datastore = dataWareHouse;
}
@Override
public TemplateModel get(String key) throws TemplateModelException {
Entity entity = datastore.get(key);
return ObjectWrapper.SIMPLE_WRAPPER.wrap(entity);
}
@Override
public boolean isEmpty() throws TemplateModelException {
return datastore.listAll().size() < 1;
}
@Override
public TemplateModelIterator iterator() throws TemplateModelException {
return new SimpleCollection(datastore.listAll().iterator()).iterator();
}
}