{
final MemcacheService memcache = MemvacheDelegate.getMemcache();
Map<Key, Object> all = memcache.getAll(theRequestKeys); // 存在しなかった場合Keyごと無い
theData = new HashMap<Key, Entity>();
for (Key key : all.keySet()) {
Entity entity = (Entity) all.get(key);
if (entity != null) {
theData.put(key, entity);
}
}
}
// もし全部取れた場合は Get動作を行わず結果を構成して返す。
if (theRequestKeys.size() == theData.size()) {
GetResponse responsePb = new GetResponse();
// toByteArray() を呼んだ時にNPEが発生するのを抑制するために内部的に new ArrayList() させる
responsePb.mutableEntitys();
responsePb.mutableDeferreds();
for (Key key : theRequestKeys) {
Entity entity = theData.get(key);
if (entity == null) {
theData.remove(key);
continue;
}
responsePb.addEntity(entity);