// DBFlute Target
        protected virtual IDataReaderHandler CreateBeanGenericListMetaDataDataReaderHandler(IBeanMetaData bmd)
        {
            InternalRowCreator         rowCreator         = CreateInternalRowCreator(bmd);
            InternalRelationRowCreator relationRowCreator = CreateInternalRelationRowCreator(bmd);

            return(new InternalBeanGenericListMetaDataResultSetHandler(bmd, rowCreator, relationRowCreator));
        }
        public static InternalRowCreator CreateInternalRowCreator(Type beanClass)
        {
            InternalRowCreator rowCreator = new InternalRowCreator();

            if (beanClass != null)
            {
                rowCreator.DBMeta = FindDBMetaByClass(beanClass);
            }
            return(rowCreator);
        }
        protected IDataReaderHandler CreateSpecifiedOutsideSqlCustomizeBeanListResultSetHandler(IBeanMetaData specifiedBeanMetaData, Type customizeEntityType)
        {
            IValueType valueType = ValueTypes.GetValueType(customizeEntityType);

            if (valueType == null || !valueType.Equals(ValueTypes.OBJECT))
            {
                // Non generic because it cannot add the null value to generic list by abstract type.
                return(new InternalObjectListResultSetHandler(customizeEntityType, valueType));
            }
            InternalRowCreator         rowCreator         = CreateInternalRowCreator(specifiedBeanMetaData); // For performance turning!
            InternalRelationRowCreator relationRowCreator = CreateInternalRelationRowCreator(specifiedBeanMetaData);

            return(new InternalBeanGenericListMetaDataResultSetHandler(specifiedBeanMetaData, rowCreator, relationRowCreator));
        }
        protected InternalRowCreator CreateInternalRowCreator(IBeanMetaData bmd)
        {
            Type clazz = bmd != null ? bmd.BeanType : null;

            return(InternalRowCreator.CreateInternalRowCreator(clazz));
        }
 protected DBMeta FindDBMeta(Object row)
 {
     return(InternalRowCreator.FindCachedDBMeta(row));
 }
 protected DBMeta FindDBMeta(Type rowType, String tableName)
 {
     return(InternalRowCreator.FindCachedDBMeta(rowType, tableName));
 }