package jef.database.innerpool;
import java.lang.reflect.Array;
import java.sql.SQLException;
import jef.database.IQueryableEntity;
import jef.database.jdbc.result.IResultSet;
import jef.database.wrapper.populator.IPopulator;
import jef.tools.reflect.BeanWrapper;
public class ArrayElementPopulator implements IPopulator{
private int index;
private InstancePopulator populator;
public ArrayElementPopulator(int index,InstancePopulator populator){
this.index=index;
this.populator=populator;
}
public void process(BeanWrapper wrapper, IResultSet rs) throws SQLException{
BeanWrapper bw = wrapper;
Object array=bw.getWrapped();
Object subDo = populator.instance();
boolean flag = populator.processOrNull(BeanWrapper.wrap(subDo), rs);
if (flag) {
if (subDo instanceof IQueryableEntity) {
((IQueryableEntity) subDo).startUpdate();
}
Array.set(array, index, subDo);
}
}
}