public class DefaultMapResultHandler<K, V> implements ResultHandler {
private final Map<K, V> mappedResults;
private final String mapKey;
@SuppressWarnings("unchecked")
public DefaultMapResultHandler(String mapKey, ObjectFactory objectFactory) {
this.mappedResults = objectFactory.create(Map.class);
this.mapKey = mapKey;
}
public void handleResult(ResultContext context) {
// TODO is that assignment always true?
final V value = (V) context.getResultObject();
final MetaObject mo = MetaObject.forObject(value);
// TODO is that assignment always true?
final K key = (K) mo.getValue(mapKey);
mappedResults.put(key, value);
}
public Map<K, V> getMappedResults() {
return mappedResults;
}
}