package br.com.caelum.calopsita.plugins;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.transform.ResultTransformer;
import br.com.caelum.vraptor.ioc.Component;
@Component
public class PluginResultTransformer implements ResultTransformer {
private final Session session;
private final List<Transformer> transformers;
public PluginResultTransformer(Session session, List<Transformer> transformers) {
this.session = session;
this.transformers = transformers;
}
public List transformList(List list) {
if (list.isEmpty()) {
return list;
}
for (Transformer<?> transformer : transformers) {
if (transformer.accepts(list.get(0).getClass())) {
list = transformer.transform(list, session);
}
}
return list;
}
public Object transformTuple(Object[] arg0, String[] arg1) {
return arg0[0];
}
}