in appengine-java8/translate-pubsub/src/main/java/com/example/appengine/translatepubsub/MessageRepositoryImpl.java [77:115]
public List<Message> retrieve(int limit) {
// Get Message saved in Datastore
Datastore datastore = getDatastoreInstance();
Query<Entity> query =
Query.newEntityQueryBuilder()
.setKind(messagesKind)
.setLimit(limit)
.addOrderBy(StructuredQuery.OrderBy.desc("publishTime"))
.build();
QueryResults<Entity> results = datastore.run(query);
List<Message> messages = new ArrayList<>();
while (results.hasNext()) {
Entity entity = results.next();
Message message = new Message(entity.getString("messageId"));
String data = entity.getString("data");
if (data != null) {
message.setData(data);
}
String publishTime = entity.getString("publishTime");
if (publishTime != null) {
message.setPublishTime(publishTime);
}
if (entity.contains("sourceLang")) {
String sourceLang = entity.getString("sourceLang");
if (sourceLang != null) {
message.setSourceLang(sourceLang);
}
}
if (entity.contains("targetLang")) {
String targetLang = entity.getString("targetLang");
if (targetLang != null) {
message.setTargetLang(targetLang);
}
}
messages.add(message);
}
return messages;
}