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