/// <summary>
        /// Gets a column value by the index
        /// </summary>
        /// <param name="mapping"></param>
        /// <param name="dataReader"></param>
        /// <returns></returns>
		public override object GetValueByIndex(ResultProperty mapping, IDataReader dataReader)
		{
			IResultGetter getter = new ResultGetterImpl(dataReader, mapping.ColumnIndex);
			return _callback.GetResult(getter);		
		}
        /// <summary>
        /// Gets a column value by the index
        /// </summary>
        /// <param name="mapping"></param>
        /// <param name="dataReader"></param>
        /// <returns></returns>
        public override object GetValueByIndex(ResultProperty mapping, IDataReader dataReader)
        {
            IResultGetter getter = new ResultGetterImpl(dataReader, mapping.ColumnIndex);

            return(_callback.GetResult(getter));
        }
        /// <summary>
        /// Retrieve ouput database value of an output parameter
        /// </summary>
        /// <param name="outputValue">ouput database value</param>
        /// <param name="parameterType">type used in EnumTypeHandler</param>
        /// <returns></returns>
		public override object GetDataBaseValue(object outputValue, Type parameterType)
		{
			IResultGetter getter = new ResultGetterImpl(outputValue);
			return _callback.GetResult(getter);	
		}
        /// <summary>
        /// Retrieve ouput database value of an output parameter
        /// </summary>
        /// <param name="outputValue">ouput database value</param>
        /// <param name="parameterType">type used in EnumTypeHandler</param>
        /// <returns></returns>
        public override object GetDataBaseValue(object outputValue, Type parameterType)
        {
            IResultGetter getter = new ResultGetterImpl(outputValue);

            return(_callback.GetResult(getter));
        }