メモ代わり。てきとーに。 いや、ですからてきとーですって。 2年前ぐらいにPythonあたりでメールくれた方、ごめんなさい。メール紛失してしまい無視した形になってしまいました。。。

2009年7月22日水曜日

[Apache Shindig][お勉強][OpenSocial] メモ70 DataRequest.newFetchPersonAppDataRequestのサーバ側実装をしてみる(2)

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 コメント: