* OdbcParameterTest.cs: Fixed compilation on 1.0 profile.
[mono.git] / mcs / class / System.Data / System.Data.ProviderBase.jvm / ReaderCache.cs
index 02462a13d6ba9997b5a53ac66a655f5154f6d357..4100bd10f5a8dba1af18782a63a6ea1f0a6c4bb2 100644 (file)
 using System;\r
 using java.sql;\r
 \r
-namespace System.Data.Common\r
+namespace System.Data.ProviderBase\r
 {\r
        public interface IReaderCacheContainer\r
        {\r
                void Fetch(ResultSet rs, int columnIndex, bool isSequential);\r
                bool IsNull();\r
+               bool IsNumeric();\r
                object GetValue();\r
        }\r
 \r
-       internal abstract class ReaderCacheContainerBase : IReaderCacheContainer\r
+       public abstract class ReaderCacheContainerBase : IReaderCacheContainer\r
        {\r
                #region Fields\r
 \r
@@ -56,6 +57,10 @@ namespace System.Data.Common
                        FetchInternal(rs, columnIndex);\r
                }\r
 \r
+               public virtual bool IsNumeric() {\r
+                       return false;\r
+               }\r
+\r
                public abstract object GetValue();              \r
 \r
                public void Fetch(ResultSet rs, int columnIndex, bool isSequential)\r
@@ -112,6 +117,11 @@ namespace System.Data.Common
                        _l = rs.getLong(columnIndex);\r
                }\r
 \r
+               public override bool IsNumeric() {\r
+                       return true;\r
+               }\r
+\r
+\r
                public override object GetValue()\r
                {\r
                        return _l;\r
@@ -187,6 +197,10 @@ namespace System.Data.Common
                        _b = rs.getBoolean(columnIndex);\r
                }\r
 \r
+               public override bool IsNumeric() {\r
+                       return true;\r
+               }\r
+\r
                public override object GetValue()\r
                {\r
                        return _b;\r
@@ -470,6 +484,10 @@ namespace System.Data.Common
                        }\r
                }\r
 \r
+               public override bool IsNumeric() {\r
+                       return true;\r
+               }\r
+\r
                public override object GetValue()\r
                {\r
                        return _d;\r
@@ -499,6 +517,10 @@ namespace System.Data.Common
                        _d = rs.getDouble(columnIndex);\r
                }\r
 \r
+               public override bool IsNumeric() {\r
+                       return true;\r
+               }\r
+\r
                public override object GetValue()\r
                {\r
                        return _d;\r
@@ -528,6 +550,10 @@ namespace System.Data.Common
                        _i = rs.getInt(columnIndex);\r
                }\r
 \r
+               public override bool IsNumeric() {\r
+                       return true;\r
+               }\r
+\r
                public override object GetValue()\r
                {\r
                        return _i;\r
@@ -590,8 +616,7 @@ namespace System.Data.Common
                        if (buffer == null)\r
                                return _s.Length;\r
                        int actualLength = ((dataIndex + length) >= _s.Length) ? (_s.Length - (int)dataIndex) : length;\r
-                       for (int i = 0, stringIndex = (int)dataIndex; i < actualLength; i++)\r
-                               buffer[bufferIndex++] = _s[stringIndex++];\r
+                       _s.CopyTo((int)dataIndex, buffer, bufferIndex, actualLength);\r
                        return actualLength;\r
                }\r
 \r
@@ -636,6 +661,10 @@ namespace System.Data.Common
                        _f = rs.getFloat(columnIndex);\r
                }\r
 \r
+               public override bool IsNumeric() {\r
+                       return true;\r
+               }\r
+\r
                public override object GetValue()\r
                {\r
                        return _f;\r
@@ -689,6 +718,10 @@ namespace System.Data.Common
                        _s = rs.getShort(columnIndex);\r
                }\r
 \r
+               public override bool IsNumeric() {\r
+                       return true;\r
+               }\r
+\r
                public override object GetValue()\r
                {\r
                        return _s;\r
@@ -718,6 +751,10 @@ namespace System.Data.Common
                        _b = (byte)rs.getByte(columnIndex);\r
                }\r
 \r
+               public override bool IsNumeric() {\r
+                       return true;\r
+               }\r
+\r
                public override object GetValue()\r
                {\r
                        return _b;\r