Author: rgrabowski
Date: Mon Oct 31 21:32:37 2005
New Revision: 329983
URL: http://svn.apache.org/viewcvs?rev=329983&view=rev
Log:
Notify the user when one of the default type handlers is being replaced:
INFO - Replacing type handler
[IBatisNet.DataMapper.TypeHandlers.DateTimeTypeHandler] with
[Company.Project.Persistence.Impl.NullDateTimeTypeHandlerCallback].
Modified:
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/TypeHandlers/CustomTypeHandler.cs
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/TypeHandlers/TypeHandlerFactory.cs
Modified:
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/TypeHandlers/CustomTypeHandler.cs
URL:
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/TypeHandlers/CustomTypeHandler.cs?rev=329983&r1=329982&r2=329983&view=diff
==============================================================================
---
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/TypeHandlers/CustomTypeHandler.cs
(original)
+++
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/TypeHandlers/CustomTypeHandler.cs
Mon Oct 31 21:32:37 2005
@@ -45,6 +45,12 @@
_callback = callback;
}
+ public ITypeHandlerCallback Callback
+ {
+ get { return _callback; }
+ set { /* nop */ }
+ }
+
/// <summary>
/// Performs processing on a value before it is used to set
/// the parameter of a IDbCommand.
Modified:
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/TypeHandlers/TypeHandlerFactory.cs
URL:
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/TypeHandlers/TypeHandlerFactory.cs?rev=329983&r1=329982&r2=329983&view=diff
==============================================================================
---
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/TypeHandlers/TypeHandlerFactory.cs
(original)
+++
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/TypeHandlers/TypeHandlerFactory.cs
Mon Oct 31 21:32:37 2005
@@ -28,6 +28,8 @@
using System;
using System.Collections.Specialized;
+using System.Reflection;
+using IBatisNet.Common.Logging;
#endregion
@@ -40,7 +42,8 @@
{
#region Fields
-
+
+ private static readonly ILog _logger = LogManager.GetLogger(
MethodBase.GetCurrentMethod().DeclaringType );
private HybridDictionary _typeHandlerMap = new
HybridDictionary();
private ITypeHandler _unknownTypeHandler = null;
private const string NULL = "_NULL_TYPE_";
@@ -185,7 +188,7 @@
/// Register (add) a type handler for a type and dbType
/// </summary>
/// <param name="type">the type</param>
- /// <param name="dbType">the dbType</param>
+ /// <param name="dbType">the dbType (optional, if dbType is
null the handler will be used for all dbTypes)</param>
/// <param name="handler">the handler instance</param>
public void Register(Type type, string dbType, ITypeHandler
handler)
{
@@ -197,6 +200,33 @@
}
if (dbType==null)
{
+ if (_logger.IsInfoEnabled)
+ {
+ // notify the user that they are no
longer using one of the built-in type handlers
+ ITypeHandler oldTypeHandler =
(ITypeHandler)map[NULL];
+
+ if (oldTypeHandler != null)
+ {
+ // the replacement will
always(?) be a CustomTypeHandler
+ CustomTypeHandler
customTypeHandler = handler as CustomTypeHandler;
+
+ string replacement =
string.Empty;
+
+ if (customTypeHandler != null)
+ {
+ // report the
underlying type
+ replacement =
customTypeHandler.Callback.ToString();
+ }
+ else
+ {
+ replacement =
handler.ToString();
+ }
+
+ // should oldTypeHandler be
checked if its a CustomTypeHandler and if so report the Callback property ???
+ _logger.Info("Replacing type
handler [" + oldTypeHandler.ToString() + "] with [" + replacement + "].");
+ }
+ }
+
map[NULL] = handler;
}
else