Update of /cvsroot/nhibernate/NHibernateContrib/src/Nullables.NHibernate
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5667/src/Nullables.NHibernate
Modified Files:
NullablesTypes.cs
Added Files:
NullableSByteType.cs
Log Message:
Implemented IComparable. Added NullableSByte, but it is inactive until further investigation.
--- NEW FILE: NullableSByteType.cs ---
using System;
using NHibernate.Type;
using NHibernate.SqlTypes;
using Nullables;
//Contributed by Sergey Koshcheyev
namespace Nullables.NHibernate
{
public class NullableSByteType : NullableTypesType
{
public NullableSByteType() : base(new Int16SqlType())
{
}
public override bool Equals(object x, object y)
{
//get boxed values.
NullableSByte xTyped = (NullableSByte)x;
return xTyped.Equals(y);
}
public override object NullValue
{
get { return NullableSByte.Default; }
}
public override bool HasNiceEquals
{
get { return true; }
}
public override bool IsMutable
{
get { return true; }
}
public override string Name
{
get { return "NullableSByte"; }
}
public override System.Type ReturnedClass
{
get { return typeof(Nullables.NullableSByte); }
}
public override object DeepCopyNotNull(object val)
{
return val;
}
public override object Get(System.Data.IDataReader rs, int index)
{
//TODO: perhaps NullableSByte has a method/operator/contructor that will take an object.
object value = rs[index];
if( value==DBNull.Value )
{
return NullableSByte.Default;
}
else
{
return new NullableSByte((SByte)value);
}
}
public override object Get(System.Data.IDataReader rs, string name)
{
//TODO: perhaps NullableSByte has a method/operator/contructor that will take an object.
object value = rs[name];
if( value==DBNull.Value )
{
return NullableSByte.Default;
}
else
{
return new NullableSByte((SByte)value);
}
}
public override void Set(System.Data.IDbCommand cmd, object value, int index)
{
System.Data.IDataParameter parameter = (System.Data.IDataParameter)cmd.Parameters[index];
NullableSByte nullableValue = (NullableSByte)value;
if( nullableValue.HasValue )
{
parameter.Value = nullableValue.Value;
}
else
{
parameter.Value = DBNull.Value;
}
}
public override string ToXML(object val)
{
return val.ToString();
}
}
}
Index: NullablesTypes.cs
===================================================================
RCS file: /cvsroot/nhibernate/NHibernateContrib/src/Nullables.NHibernate/NullablesTypes.cs,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** NullablesTypes.cs 12 Nov 2004 22:08:26 -0000 1.1
--- NullablesTypes.cs 10 Dec 2004 18:24:19 -0000 1.2
***************
*** 49,52 ****
--- 49,57 ----
/// </summary>
public static readonly NullableType NullableDateTime = new NullableDateTimeType();
+
+ // /// <summary>
+ // /// Nullables.NHibernate.NullableSByte type
+ // /// </summary>
+ // public static readonly NullableType NullableSByte = new NullableSByteType();
/// <summary>
|