Package com.cfinkel.reports.valuelist

Source Code of com.cfinkel.reports.valuelist.CFDynaBeanAdapter

package com.cfinkel.reports.valuelist;

import net.mlw.vlh.adapter.jdbc.dynabean.fix.ResultSetDynaClass;
import net.mlw.vlh.adapter.jdbc.AbstractDynaJdbcAdapter;
import net.mlw.vlh.ValueListInfo;

import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.apache.commons.beanutils.BasicDynaClass;
import org.apache.commons.beanutils.BasicDynaBean;
import org.apache.commons.beanutils.DynaBean;
import org.apache.commons.beanutils.DynaProperty;
import org.apache.log4j.Logger;

/**
* $Author:charles $
* $Revision:10429 $
* $Date:2006-07-26 18:00:43 -0400 (Wed, 26 Jul 2006) $
* <p/>
* created:
* User: charles
* Date: May 16, 2006
* Time: 7:40:21 PM
* added to use CFResultSetDynaClass isntead of Default.  Meant just to fix the lowercase bug
*/
public class CFDynaBeanAdapter extends AbstractDynaJdbcAdapter {
    private static final Logger log = Logger.getLogger(CFDynaBeanAdapter.class);


    public List processResultSet(String name, ResultSet result, int numberPerPage, ValueListInfo info) throws SQLException {
        List list = new ArrayList();

        ResultSetDynaClass rsdc = new CFResultSetDynaClass(result, false, isUseName());
        BasicDynaClass bdc = new BasicDynaClass(name, BasicDynaBean.class, rsdc.getDynaProperties());

        int rowIndex = 0;
        for (Iterator rows = rsdc.iterator(); rows.hasNext() && rowIndex < numberPerPage; rowIndex++)
        {
            try
            {
                DynaBean oldRow = (DynaBean) rows.next();
                DynaBean newRow = bdc.newInstance();

                DynaProperty[] properties = oldRow.getDynaClass().getDynaProperties();
                for (int i = 0, length = properties.length; i < length; i++)
                {
                    String propertyName = properties[i].getName();
                    Object value = oldRow.get(propertyName);
                    newRow.set(propertyName, value);
                }

                list.add(newRow);
            }
            catch (Exception e)
            {
                log.error(e);
            }
        }

        return list;
    }
}
TOP

Related Classes of com.cfinkel.reports.valuelist.CFDynaBeanAdapter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.