public DataExchangeFactory(IBatisNet.DataMapper.TypeHandlers.TypeHandlerFactory typeHandlerFactory, IObjectFactory objectFactory, IBatisNet.Common.Utilities.Objects.Members.AccessorFactory accessorFactory)
 {
     this._objectFactory          = objectFactory;
     this._typeHandlerFactory     = typeHandlerFactory;
     this._accessorFactory        = accessorFactory;
     this._primitiveDataExchange  = new PrimitiveDataExchange(this);
     this._complexDataExchange    = new ComplexDataExchange(this);
     this._listDataExchange       = new ListDataExchange(this);
     this._dictionaryDataExchange = new DictionaryDataExchange(this);
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="DataExchangeFactory"/> class.
        /// </summary>
        /// <param name="typeHandlerFactory">The type handler factory.</param>
        /// <param name="objectFactory">The object factory.</param>
        /// <param name="accessorFactory">The accessor factory.</param>
        public DataExchangeFactory(TypeHandlerFactory typeHandlerFactory,
			IObjectFactory objectFactory,
            AccessorFactory accessorFactory)
        {
            _objectFactory = objectFactory;
            _typeHandlerFactory = typeHandlerFactory;
            _accessorFactory = accessorFactory;

            _primitiveDataExchange = new PrimitiveDataExchange(this);
            _complexDataExchange = new ComplexDataExchange(this);
            _listDataExchange = new ListDataExchange(this);
            _dictionaryDataExchange = new DictionaryDataExchange(this);
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Constructor to create via a factory
 /// </summary>
 /// <param name="factory">the factory to associate this with</param>
 public UnknownTypeHandler(TypeHandlerFactory factory)
 {
     _factory = factory;
 }
        /// <summary>
        /// Resolve TypeHandler
        /// </summary>
        /// <param name="parameterClassType"></param>
        /// <param name="propertyName"></param>
        /// <param name="propertyType"></param>
        /// <param name="dbType"></param>
        /// <param name="typeHandlerFactory"></param>
        /// <returns></returns>
        private ITypeHandler ResolveTypeHandler(TypeHandlerFactory typeHandlerFactory, 
            Type parameterClassType, string propertyName,
            string propertyType, string dbType)
        {
            ITypeHandler handler = null;

            if (parameterClassType == null)
            {
                handler = typeHandlerFactory.GetUnkownTypeHandler();
            }
            else if (typeof(IDictionary).IsAssignableFrom(parameterClassType))
            {
                if (propertyType == null || propertyType.Length==0)
                {
                    handler = typeHandlerFactory.GetUnkownTypeHandler();
                }
                else
                {
                    try
                    {
                        Type typeClass = TypeUtils.ResolveType(propertyType);
                        handler = typeHandlerFactory.GetTypeHandler(typeClass, dbType);
                    }
                    catch (Exception e)
                    {
                        throw new ConfigurationException("Error. Could not set TypeHandler.  Cause: " + e.Message, e);
                    }
                }
            }
            else if (typeHandlerFactory.GetTypeHandler(parameterClassType, dbType) != null)
            {
                handler = typeHandlerFactory.GetTypeHandler(parameterClassType, dbType);
            }
            else
            {
                Type typeClass = ObjectProbe.GetMemberTypeForGetter(parameterClassType, propertyName);
                handler = typeHandlerFactory.GetTypeHandler(typeClass, dbType);
            }

            return handler;
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Constructor to create via a factory
 /// </summary>
 /// <param name="factory">the factory to associate this with</param>
 public UnknownTypeHandler(TypeHandlerFactory factory)
 {
     _factory = factory;
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Initialize a the result property
 /// for AutoMapper
 /// </summary>
 /// <param name="setAccessor">An <see cref="ISetAccessor"/>.</param>
 /// <param name="typeHandlerFactory"></param>
 internal void Initialize(TypeHandlerFactory typeHandlerFactory, ISetAccessor setAccessor )
 {
     _setAccessor = setAccessor;
     _typeHandler = typeHandlerFactory.GetTypeHandler(setAccessor.MemberType);
 }