package com.googlecode.mycontainer.gae.test; import static com.google.appengine.api.datastore.FetchOptions.Builder.withLimit; import java.util.ArrayList; import java.util.List; import com.google.appengine.api.datastore.DatastoreService; import com.google.appengine.api.datastore.DatastoreServiceFactory; import com.google.appengine.api.datastore.Entity; import com.google.appengine.api.datastore.KeyFactory; import com.google.appengine.api.datastore.Query; import com.google.appengine.api.datastore.QueryResultIterable; import com.google.appengine.api.datastore.QueryResultIterator; public class MessageServiceDaS implements MessageService { public List<Message> getAll() { DatastoreService ds = DatastoreServiceFactory.getDatastoreService(); Query query = new Query("Message"); query.addSort("text"); QueryResultIterable<Entity> msgs = ds.prepare(query) .asQueryResultIterable(withLimit(10)); QueryResultIterator<Entity> it = msgs.iterator(); List<Message> ret = new ArrayList<Message>(); while (it.hasNext()) { Entity entity = it.next(); Message msg = convert(entity); ret.add(msg); } return ret; } private Message convert(Entity entity) { Message ret = new Message(); ret.setId(entity.getKey().getId()); ret.setText((String) entity.getProperty("text")); return ret; } public void create(Message message) { DatastoreService ds = DatastoreServiceFactory.getDatastoreService(); Entity entity = new Entity("Message"); entity.setProperty("text", message.getText()); ds.put(entity); } public void deleteById(Long id) { DatastoreService ds = DatastoreServiceFactory.getDatastoreService(); ds.delete(KeyFactory.createKey("Message", id)); } }