ShindigのAppDataServiceDb.javaを見ると、
// load the map up
List<ApplicationDataMapDb> dataMaps = JPQLUtils.getListQuery(entityManager, sb.toString(),
paramList, null);
Map<String, Map<String, String>> results = new HashMap<String, Map<String, String>>();
// only add in the fields
if (fields == null || fields.size() == 0) {
for (ApplicationDataMapDb adm : dataMaps) {
results.put(adm.getPersonId(), adm.getValues());
}
} else {
for (ApplicationDataMapDb adm : dataMaps) {
Map<String, String> m = Maps.newHashMap();
for (String f : fields) {
String value = adm.getValues().get(f);
if (null != value) {
m.put(f, value);
}
}
results.put(adm.getPersonId(), m);
}
}
DataCollection dc = new DataCollection(results);
return ImmediateFuture.newInstance(dc);
となっていて、見たこともないDataCollectionというクラスがImmediateFutre.newInstanceされて返されている。。
結局のところ、AppDataService.getPersonDataは、同じように
DataCollection dc = new DataCollection(results);
return ImmediateFuture.newInstance(dc);
としてやればよいと。
resultsは、
Map<String, Map<String, String>> results = new HashMap<String, Map<String, String>>();
と。
このresultsをせっせと作って、
org.apache.shindig.protocol.DataCollection
にして返す。
大体わかった。
.
0 コメント:
コメントを投稿