if (list != null && list.size() > 0) {
Long oldGruppo = 0l;
Long oldMastro = 0l;
Long oldConto = 0l;
SchedaContoOut schedaConto = null;
for (int r = 0; r < list.size(); r++) {
MovimentoSchedaConto mov = new MovimentoSchedaConto();
Long gruppo = 0l;
Long mastro = 0l;
Long conto = 0l;
Object[] row;
row = (Object[]) list.get(r);
if (row != null && row.length > 0) {
for (int i = 0; i < row.length; i++) {
Object o = row[i];
if (i == 0) {
BigDecimal grup = (BigDecimal) o;
gruppo = new Long(grup.longValue());
mov.setCodiceGruppo(gruppo);
}
if (i == 1) {
BigDecimal mas = (BigDecimal) o;
mastro = new Long(mas.longValue());
mov.setCodiceMastro(mastro);
}
if (i == 2) {
BigDecimal cont = (BigDecimal) o;
conto = new Long(cont.longValue());
mov.setCodiceConto(conto);
}
if (i == 3) {
mov.setDataRegistrazione((Date) o);
}
if (i == 4) {
mov.setDataValuta((Date) o);
}
if (i == 5) {
mov.setDataCompetenza((Date) o);
}
if (i == 6) {
BigDecimal artic = (BigDecimal) o;
mov.setNumeroArticoloCustom(artic.intValue());
}
if (i == 7) {
BigDecimal artic = (BigDecimal) o;
mov.setNumeroArticolo(artic.intValue());
}
if (i == 8) {
BigDecimal prog = (BigDecimal) o;
mov.setProgressivoRigaArticolo(prog.intValue());
}
if (i == 9) {
mov.setDescrizioneConto((String) o);
}
if (i == 10) {
BigDecimal dare = (BigDecimal) o;
mov.setDare(new Double(dare.doubleValue()));
}
if (i == 11) {
BigDecimal avere = (BigDecimal) o;
mov.setAvere(new Double(avere.doubleValue()));
}
if (i == 12) {
mov.setDescrizione((String) o);
}
if (i == 13) {
Character tpMov = (Character) o;
mov.setTipoMovimento(tpMov.toString());
}
if (i == 14) {
Character flMod = (Character) o;
if (flMod != null)
mov.setFlagModificabile(flMod.toString());
}
if (i == 15) {
mov.setDescrizioneMovimento((String) o);
}
if (i == 16) {
BigDecimal saldo = (BigDecimal) o;
mov.setSaldo(new Double(saldo.doubleValue()));
}
if (i == 17) {
mov.setOperatoreContabile((String) o);
}
}
}
// if diverso new e add
if (gruppo.longValue() != oldGruppo.longValue() || mastro.longValue() != oldMastro.longValue()
|| conto.longValue() != oldConto.longValue()) {
oldGruppo = gruppo;
oldMastro = mastro;
oldConto = conto;
// faccio la add solo se schedaConto non � null(cio� se
// si sta ciclando su un record dopo il primo)
if (schedaConto != null)
listaResult.add(schedaConto);
schedaConto = new SchedaContoOut();
schedaConto.setConto(conto);
schedaConto.setGruppo(gruppo);
schedaConto.setMastro(mastro);
}
schedaConto.getMovimenti().add(mov);
}
// faccio la add dell'ultimo Gruppo Mastro Conto
if (schedaConto != null)
listaResult.add(schedaConto);