Author: kostat
Date: 2005-05-01 12:49:19 -0400 (Sun, 01 May 2005)
New Revision: 43847
Added:
branches/Mainsoft.System.Data/mcs/class/System.Data/System.Data.ProviderBase/ReaderCache.cs
Removed:
branches/Mainsoft.System.Data/mcs/class/System.Data/System.Data.Common/ReaderCache.cs
Log:
Deleted:
branches/Mainsoft.System.Data/mcs/class/System.Data/System.Data.Common/ReaderCache.cs
===================================================================
---
branches/Mainsoft.System.Data/mcs/class/System.Data/System.Data.Common/ReaderCache.cs
2005-05-01 16:48:44 UTC (rev 43846)
+++
branches/Mainsoft.System.Data/mcs/class/System.Data/System.Data.Common/ReaderCache.cs
2005-05-01 16:49:19 UTC (rev 43847)
@@ -1,659 +0,0 @@
-using System;
-using java.sql;
-
-namespace System.Data.Common
-{
- public interface IReaderCacheContainer
- {
- void Fetch(ResultSet rs, int columnIndex);
- bool IsNull();
- object GetValue();
- }
-
- internal abstract class ReaderCacheContainerBase : IReaderCacheContainer
- {
- #region Fields
-
- bool _isNull;
-
- #endregion // Fields
-
- #region Methods
-
- protected abstract void FetchInternal(ResultSet rs, int
columnIndex);
-
- public abstract object GetValue();
-
- public void Fetch(ResultSet rs, int columnIndex)
- {
- FetchInternal(rs, columnIndex + 1);
- _isNull = rs.wasNull();
- }
-
- public bool IsNull()
- {
- return _isNull;
- }
-
- #endregion // Methods
- }
-
-
- internal sealed class ArrayReaderCacheContainer :
ReaderCacheContainerBase // Types.ARRAY
- {
- #region Fields
-
- java.sql.Array _a;
-
- #endregion // Fields
-
- #region Methods
-
- protected override void FetchInternal(ResultSet rs, int
columnIndex)
- {
- _a = rs.getArray(columnIndex);
- }
-
- public override object GetValue()
- {
- return _a;
- }
-
- internal java.sql.Array GetArray()
- {
- return _a;
- }
-
- #endregion // Methods
- }
-
-
- internal sealed class Int64ReaderCacheContainer :
ReaderCacheContainerBase // Types.BIGINT
- {
- #region Fields
-
- long _l;
-
- #endregion // Fields
-
- #region Methods
-
- protected override void FetchInternal(ResultSet rs, int
columnIndex)
- {
- _l = rs.getLong(columnIndex);
- }
-
- public override object GetValue()
- {
- return _l;
- }
-
- internal long GetInt64()
- {
- return _l;
- }
-
- #endregion // Methods
- }
-
-
- internal class BytesReaderCacheContainer : ReaderCacheContainerBase //
Types.BINARY, Types.VARBINARY, Types.LONGVARBINARY
- {
- #region Fields
-
- protected byte[] _b;
-
- #endregion // Fields
-
- #region Methods
-
- protected override void FetchInternal(ResultSet rs, int
columnIndex)
- {
- sbyte[] sbyteArray = rs.getBytes(columnIndex);
- if (sbyteArray != null) {
- _b =
(byte[])vmw.common.TypeUtils.ToByteArray(sbyteArray);
- }
- }
-
- public override object GetValue()
- {
- return _b;
- }
-
- internal byte[] GetBytes()
- {
- return _b;
- }
-
- #endregion // Methods
- }
-
-
- internal sealed class BooleanReaderCacheContainer :
ReaderCacheContainerBase // Types.BIT
- {
- #region Fields
-
- bool _b;
-
- #endregion // Fields
-
- #region Methods
-
- protected override void FetchInternal(ResultSet rs, int
columnIndex)
- {
- _b = rs.getBoolean(columnIndex);
- }
-
- public override object GetValue()
- {
- return _b;
- }
-
- internal bool GetBoolean()
- {
- return _b;
- }
-
- #endregion // Methods
- }
-
-
- internal sealed class BlobReaderCacheContainer :
BytesReaderCacheContainer // Types.BLOB
- {
- #region Fields
-
- static readonly byte[] _emptyByteArr = new byte[0];
-
- #endregion // Fields
-
- #region Methods
-
- protected override void FetchInternal(ResultSet rs, int
columnIndex)
- {
- java.sql.Blob blob = rs.getBlob(columnIndex);
- if (blob != null) {
- long length = blob.length();
- if (length == 0) {
- _b = _emptyByteArr;
- }
- else {
- java.io.InputStream input =
blob.getBinaryStream();
- byte[] byteValue = new byte[length];
- sbyte[] sbyteValue =
vmw.common.TypeUtils.ToSByteArray(byteValue);
- input.read(sbyteValue);
- _b = byteValue;
- }
- }
- }
-
- public override object GetValue()
- {
- return _b;
- }
-
- #endregion // Methods
- }
-
-
- internal abstract class CharsReaderCacheContainer :
ReaderCacheContainerBase //
- {
- #region Fields
-
- #endregion // Fields
-
- #region Methods
-
- internal abstract char[] GetChars();
-
- #endregion // Methods
- }
-
-
- internal sealed class GuidReaderCacheContainer :
ReaderCacheContainerBase // Types.CHAR
- {
- #region Fields
-
- Guid _g;
-
- #endregion // Fields
-
- #region Methods
-
- protected override void FetchInternal(ResultSet rs, int
columnIndex)
- {
- _g = new Guid(rs.getString(columnIndex));
- }
-
- public override object GetValue()
- {
- return _g;
- }
-
- internal Guid GetGuid()
- {
- return _g;
- }
-
- #endregion // Methods
- }
-
-
- internal sealed class ClobReaderCacheContainer :
StringReaderCacheContainer // Types.CLOB
- {
- #region Fields
-
- char[] _c;
-
- #endregion // Fields
-
- #region Methods
-
- // FIXME : conside adding stream wrapper interface
-
- protected override void FetchInternal(ResultSet rs, int
columnIndex)
- {
- java.sql.Clob clob = rs.getClob(columnIndex);
- if (clob != null) {
- long length = clob.length();
- if (length == 0) {
- _s = String.Empty;
- _c = String.Empty.ToCharArray();
- }
- else {
- java.io.Reader reader =
clob.getCharacterStream();
- char[] charValue = new char[length];
- reader.read(charValue);
- _c = charValue;
-
- }
- }
- }
-
- public override object GetValue()
- {
- if (_s == null && _c != null) {
- _s = (_c.Length != 0) ? new String(_c) :
String.Empty;
- }
- return _s;
- }
-
- internal override char[] GetChars()
- {
- return _c;
- }
-
- #endregion // Methods
- }
-
-
- internal sealed class TimeSpanReaderCacheContainer :
ReaderCacheContainerBase // Types.TIME
- {
- #region Fields
-
- TimeSpan _t;
-
- #endregion // Fields
-
- #region Methods
-
- protected override void FetchInternal(ResultSet rs, int
columnIndex)
- {
- Time t = rs.getTime(columnIndex);
- if (t != null) {
- _t = new
TimeSpan(DbConvert.JavaTimeToClrTicks(t));
- }
- }
-
- public override object GetValue()
- {
- return _t;
- }
-
- internal TimeSpan GetTimeSpan()
- {
- return _t;
- }
-
- #endregion // Methods
- }
-
-
- internal class DateTimeReaderCacheContainer : ReaderCacheContainerBase
// Types.TIMESTAMP
- {
- #region Fields
-
- protected DateTime _d;
-
- #endregion // Fields
-
- #region Methods
-
- protected override void FetchInternal(ResultSet rs, int
columnIndex)
- {
- Date d = rs.getDate(columnIndex);
- if (d != null) {
- _d = new
DateTime(DbConvert.JavaDateToClrTicks(d));
- }
- }
-
- public override object GetValue()
- {
- return _d;
- }
-
- internal DateTime GetDateTime()
- {
- return _d;
- }
-
- #endregion // Methods
- }
-
- internal sealed class TimestampReaderCacheContainer :
DateTimeReaderCacheContainer // Types.DATE
- {
- protected override void FetchInternal(ResultSet rs, int
columnIndex) {
- Timestamp ts = rs.getTimestamp(columnIndex);
- if (ts != null) {
- _d = new
DateTime(DbConvert.JavaTimestampToClrTicks(ts));
- }
- }
- }
-
-
- internal sealed class DecimalReaderCacheContainer :
ReaderCacheContainerBase // Types.DECIMAL, Types.NUMERIC
- {
- #region Fields
-
- decimal _d;
-
- #endregion // Fields
-
- #region Methods
-
- protected override void FetchInternal(ResultSet rs, int
columnIndex)
- {
- java.math.BigDecimal bigDecimal =
rs.getBigDecimal(columnIndex);
- if (bigDecimal != null) {
- _d =
(decimal)vmw.common.PrimitiveTypeUtils.BigDecimalToDecimal(bigDecimal);
- }
- }
-
- public override object GetValue()
- {
- return _d;
- }
-
- internal decimal GetDecimal()
- {
- return _d;
- }
-
- #endregion // Methods
- }
-
-
- internal sealed class DoubleReaderCacheContainer :
ReaderCacheContainerBase // Types.DOUBLE, Types.Float, Types.NUMERIC for Oracle
with scale = -127
- {
- #region Fields
-
- double _d;
-
- #endregion // Fields
-
- #region Methods
-
- protected override void FetchInternal(ResultSet rs, int
columnIndex)
- {
- _d = rs.getDouble(columnIndex);
- }
-
- public override object GetValue()
- {
- return _d;
- }
-
- internal double GetDouble()
- {
- return _d;
- }
-
- #endregion // Methods
- }
-
-
- internal sealed class Int32ReaderCacheContainer :
ReaderCacheContainerBase // Types.INTEGER
- {
- #region Fields
-
- int _i;
-
- #endregion // Fields
-
- #region Methods
-
- protected override void FetchInternal(ResultSet rs, int
columnIndex)
- {
- _i = rs.getInt(columnIndex);
- }
-
- public override object GetValue()
- {
- return _i;
- }
-
- internal int GetInt32()
- {
- return _i;
- }
-
- #endregion // Methods
- }
-
-
- internal class StringReaderCacheContainer : CharsReaderCacheContainer
// Types.LONGVARCHAR, Types.VARCHAR, Types.CHAR
- {
- #region Fields
-
- protected string _s;
-
- #endregion // Fields
-
- #region Methods
-
- protected override void FetchInternal(ResultSet rs, int
columnIndex)
- {
- _s = rs.getString(columnIndex);
- // Oracle Jdbc driver returns extra trailing 0 chars
for NCHAR columns
-// if ((_s != null) && (_jdbcType == 1)) {
-// Console.WriteLine(_jdbcType);
-// int zeroIndex = ((string)_s).IndexOf((char)0);
-// if (zeroIndex > 0) {
-// Console.WriteLine("zero-padded");
-// _s =
((string)_s).Substring(0,zeroIndex);
-// }
-// else {
-// // Oracle sometimes pads with blanks
(32)
-// int blankIndex =
((string)_s).IndexOf((char)32);
-// if (blankIndex > 0) {
-//
Console.WriteLine("blank-padded");
-// _s =
((string)_s).Substring(0,blankIndex);
-// }
-// }
-// }
- }
-
- public override object GetValue()
- {
- return _s;
- }
-
- internal string GetString()
- {
- return _s;
- }
-
- internal override char[] GetChars()
- {
- return _s.ToCharArray();
- }
-
- #endregion // Methods
- }
-
-
- internal sealed class NullReaderCacheContainer :
ReaderCacheContainerBase // Types.NULL
- {
- #region Fields
-
- #endregion // Fields
-
- #region Methods
-
- protected override void FetchInternal(ResultSet rs, int
columnIndex)
- {
- }
-
- public override object GetValue()
- {
- return DBNull.Value;
- }
-
- #endregion // Methods
- }
-
-
- internal sealed class FloatReaderCacheContainer :
ReaderCacheContainerBase // Types.REAL
- {
- #region Fields
-
- float _f;
-
- #endregion // Fields
-
- #region Methods
-
- protected override void FetchInternal(ResultSet rs, int
columnIndex)
- {
- _f = rs.getFloat(columnIndex);
- }
-
- public override object GetValue()
- {
- return _f;
- }
-
- internal float GetFloat()
- {
- return _f;
- }
-
- #endregion // Methods
- }
-
-
- internal sealed class RefReaderCacheContainer :
ReaderCacheContainerBase // Types.REF
- {
- #region Fields
-
- java.sql.Ref _r;
-
- #endregion // Fields
-
- #region Methods
-
- protected override void FetchInternal(ResultSet rs, int
columnIndex)
- {
- _r = rs.getRef(columnIndex);
- }
-
- public override object GetValue()
- {
- return _r;
- }
-
- #endregion // Methods
- }
-
-
- internal sealed class Int16ReaderCacheContainer :
ReaderCacheContainerBase // Types.SMALLINT
- {
- #region Fields
-
- short _s;
-
- #endregion // Fields
-
- #region Methods
-
- protected override void FetchInternal(ResultSet rs, int
columnIndex)
- {
- _s = rs.getShort(columnIndex);
- }
-
- public override object GetValue()
- {
- return _s;
- }
-
- internal short GetInt16()
- {
- return _s;
- }
-
- #endregion // Methods
- }
-
-
- internal sealed class ByteReaderCacheContainer :
ReaderCacheContainerBase // Types.TINYINT
- {
- #region Fields
-
- byte _b;
-
- #endregion // Fields
-
- #region Methods
-
- protected override void FetchInternal(ResultSet rs, int
columnIndex)
- {
- _b = (byte)rs.getByte(columnIndex);
- }
-
- public override object GetValue()
- {
- return _b;
- }
-
- internal byte GetByte()
- {
- return _b;
- }
-
- #endregion // Methods
- }
-
-
- internal sealed class ObjectReaderCacheContainer :
ReaderCacheContainerBase // Types.Distinct, Types.JAVA_OBJECT, Types.OTHER,
Types.STRUCT
- {
- #region Fields
-
- object o;
-
- #endregion // Fields
-
- #region Methods
-
- protected override void FetchInternal(ResultSet rs, int
columnIndex)
- {
- o = rs.getObject(columnIndex);
- }
-
- public override object GetValue()
- {
- return o;
- }
-
- #endregion // Methods
- }
-
-}
Copied:
branches/Mainsoft.System.Data/mcs/class/System.Data/System.Data.ProviderBase/ReaderCache.cs
(from rev 43846,
branches/Mainsoft.System.Data/mcs/class/System.Data/System.Data.Common/ReaderCache.cs)
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches