[Cleanup] Removed files that imported Java namespaces
authorAlexander Köplinger <alex.koeplinger@outlook.com>
Thu, 7 Aug 2014 19:09:54 +0000 (21:09 +0200)
committerAlexander Köplinger <alex.koeplinger@outlook.com>
Thu, 7 Aug 2014 21:01:53 +0000 (23:01 +0200)
They were once part of a special Java target profile, but this is no longer used today.

55 files changed:
mcs/class/Novell.Directory.Ldap/Makefile
mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Security.jvm/.gitattributes [deleted file]
mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Security.jvm/AuthenticationCallbackHandler.cs [deleted file]
mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Security.jvm/ChangeLog [deleted file]
mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Security.jvm/CreateContextPrivilegedAction.cs [deleted file]
mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Security.jvm/ExchangeTokenPrivilegedAction.cs [deleted file]
mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Security.jvm/Krb5Helper.cs [deleted file]
mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Security.jvm/SecureStream.cs [deleted file]
mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Security.jvm/UnwrapPrivilegedAction.cs [deleted file]
mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Security.jvm/WrapPrivilegedAction.cs [deleted file]
mcs/class/System.Data.OracleClient/System.Data.OracleClient.jvm/OracleCommand.cs [deleted file]
mcs/class/System.Data.OracleClient/System.Data.OracleClient.jvm/OracleConnection.cs [deleted file]
mcs/class/System.Data.OracleClient/System.Data.OracleClient.jvm/OracleConvert.cs [deleted file]
mcs/class/System.Data.OracleClient/System.Data.OracleClient.jvm/OracleDataReader.cs [deleted file]
mcs/class/System.Data.OracleClient/System.Data.OracleClient.jvm/OracleError.cs [deleted file]
mcs/class/System.Data.OracleClient/System.Data.OracleClient.jvm/OracleErrorCollection.cs [deleted file]
mcs/class/System.Data.OracleClient/System.Data.OracleClient.jvm/OracleException.cs [deleted file]
mcs/class/System.Data.OracleClient/System.Data.OracleClient.jvm/OracleParameter.cs [deleted file]
mcs/class/System.Data/Mainsoft.Data.Jdbc.Providers.jvm/GenericProvider.cs [deleted file]
mcs/class/System.Data/Mainsoft.Data.Jdbc.Providers.jvm/IProvider.cs [deleted file]
mcs/class/System.Data/Mainsoft.Data.Jdbc.Providers.jvm/OleDbSqlServerProvider.cs [deleted file]
mcs/class/System.Data/System.Data.Common/DbMetaDataCache.cs [deleted file]
mcs/class/System.Data/System.Data.OleDb.jvm/OleDbCommand.cs [deleted file]
mcs/class/System.Data/System.Data.OleDb.jvm/OleDbConnection.cs [deleted file]
mcs/class/System.Data/System.Data.OleDb.jvm/OleDbConvert.cs [deleted file]
mcs/class/System.Data/System.Data.OleDb.jvm/OleDbDataReader.cs [deleted file]
mcs/class/System.Data/System.Data.OleDb.jvm/OleDbError.cs [deleted file]
mcs/class/System.Data/System.Data.OleDb.jvm/OleDbErrorCollection.cs [deleted file]
mcs/class/System.Data/System.Data.OleDb.jvm/OleDbException.cs [deleted file]
mcs/class/System.Data/System.Data.OleDb.jvm/OleDbParameter.cs [deleted file]
mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractDBCommand.cs [deleted file]
mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractDBConnection.cs [deleted file]
mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractDBParameter.cs [deleted file]
mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractDataReader.cs [deleted file]
mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractDbError.cs [deleted file]
mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractDbErrorCollection.cs [deleted file]
mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractDbException.cs [deleted file]
mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractTransaction.cs [deleted file]
mcs/class/System.Data/System.Data.ProviderBase.jvm/DbConvert.cs [deleted file]
mcs/class/System.Data/System.Data.ProviderBase.jvm/ParameterMetadataWrapper.cs [deleted file]
mcs/class/System.Data/System.Data.ProviderBase.jvm/ReaderCache.cs [deleted file]
mcs/class/System.Data/System.Data.SqlClient.jvm/SqlCommand.cs [deleted file]
mcs/class/System.Data/System.Data.SqlClient.jvm/SqlConnection.cs [deleted file]
mcs/class/System.Data/System.Data.SqlClient.jvm/SqlConvert.cs [deleted file]
mcs/class/System.Data/System.Data.SqlClient.jvm/SqlDataReader.cs [deleted file]
mcs/class/System.Data/System.Data.SqlClient.jvm/SqlError.cs [deleted file]
mcs/class/System.Data/System.Data.SqlClient.jvm/SqlErrorCollection.cs [deleted file]
mcs/class/System.Data/System.Data.SqlClient.jvm/SqlException.cs [deleted file]
mcs/class/System.Data/System.Data.SqlClient.jvm/SqlParameter.cs [deleted file]
mcs/class/System.Data/System.Data.SqlTypes.jvm/SqlDecimal.cs [deleted file]
mcs/class/System.Data/System.Data/Res.cs [deleted file]
mcs/class/System.Web/System.Web.J2EE/J2EEUtils.cs [deleted file]
mcs/class/System.Web/System.Web.J2EE/ObjectInputStream.cs [deleted file]
mcs/class/System.Web/System.Web.J2EE/ObjectOutputStream.cs [deleted file]
mcs/class/System.Web/System.Web/IHttpExtendedWorkerRequest.cs [deleted file]

index 725938c35227ae42ddd432014cb107573e3b202f..7ecbff311e92edc1007bf37a0522747dd7e05224 100644 (file)
@@ -24,14 +24,6 @@ $(RESULTCODE_MESSAGES): Novell.Directory.Ldap.Utilclass/ResultCodeMessages.txt
 
 EXTRA_DISTFILES = \
        Novell.Directory.Ldap.Rfc2251/RfcLdapURL.cs \
-       Novell.Directory.Ldap.Security.jvm/AuthenticationCallbackHandler.cs \
-       Novell.Directory.Ldap.Security.jvm/ChangeLog \
-       Novell.Directory.Ldap.Security.jvm/CreateContextPrivilegedAction.cs \
-       Novell.Directory.Ldap.Security.jvm/ExchangeTokenPrivilegedAction.cs \
-       Novell.Directory.Ldap.Security.jvm/Krb5Helper.cs \
-       Novell.Directory.Ldap.Security.jvm/SecureStream.cs \
-       Novell.Directory.Ldap.Security.jvm/UnwrapPrivilegedAction.cs \
-       Novell.Directory.Ldap.Security.jvm/WrapPrivilegedAction.cs \
        Novell.Directory.Ldap.Utilclass/ExceptionMessages.resx \
        Novell.Directory.Ldap.Utilclass/ExceptionMessages.txt \
        Novell.Directory.Ldap.Utilclass/ResultCodeMessages.resx \
diff --git a/mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Security.jvm/.gitattributes b/mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Security.jvm/.gitattributes
deleted file mode 100644 (file)
index f4322ca..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-/AuthenticationCallbackHandler.cs -crlf
-/CreateContextPrivilegedAction.cs -crlf
-/ExchangeTokenPrivilegedAction.cs -crlf
-/Krb5Helper.cs -crlf
-/SecureStream.cs -crlf
-/UnwrapPrivilegedAction.cs -crlf
-/WrapPrivilegedAction.cs -crlf
diff --git a/mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Security.jvm/AuthenticationCallbackHandler.cs b/mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Security.jvm/AuthenticationCallbackHandler.cs
deleted file mode 100644 (file)
index 486ab61..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-// 
-// Novell.Directory.Ldap.Security.AuthenticationCallbackHandler.cs
-//
-// Authors:
-//  Boris Kirzner <borsk@mainsoft.com>
-//     Konstantin Triger <kostat@mainsoft.com>
-//     
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//\r
-\r
-using System;\r
-\r
-using javax.security.auth.callback;\r
-using java.io;\r
-\r
-namespace Novell.Directory.Ldap.Security\r
-{\r
-       internal class AuthenticationCallbackHandler : CallbackHandler\r
-       {\r
-\r
-               #region Fields\r
-\r
-               private readonly string _username;\r
-               private readonly string _password;\r
-\r
-               #endregion //Fields\r
-\r
-               #region Constructors\r
-\r
-               public AuthenticationCallbackHandler(string username, string password)\r
-               {\r
-                       _username = username;\r
-                       _password = password;\r
-               }\r
-\r
-               #endregion // Constructors\r
-\r
-               #region Methods\r
-\r
-               public void handle(Callback [] callbacks)\r
-               {\r
-                       for (int i = 0; i < callbacks.Length; i++) {\r
-                               if (callbacks [i] is NameCallback) {\r
-                                       NameCallback nc = (NameCallback) callbacks [i];\r
-                                       nc.setName (_username);\r
-                               }\r
-                               else if (callbacks [i] is PasswordCallback) {\r
-                                       PasswordCallback pc = (PasswordCallback) callbacks [i];\r
-                                       pc.setPassword (_password.ToCharArray ());\r
-                               }\r
-                               else {\r
-                                       throw new UnsupportedCallbackException (callbacks [i], "Unrecognized Callback");\r
-                               }\r
-                       }\r
-               }\r
-\r
-               #endregion // Methods\r
-       }\r
-}\r
diff --git a/mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Security.jvm/ChangeLog b/mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Security.jvm/ChangeLog
deleted file mode 100644 (file)
index be95898..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-2005-11-06  Konstantin Triger <kostat@mainsoft.com>
-
-       * SecureStream.cs, CreateContextPrivilegedAction.cs, Krb5Helper.cs:
-               create GSSCredential only once, cleanup
-
-2005-11-03  Konstantin Triger <kostat@mainsoft.com>
-
-       * CreateContextPrivilegedAction.cs: always require mutual auth;
-               require integrity by default.
-       * Krb5Helper.cs: for wrap/unwrap: always create MessageProp with 
-               pribState set.
-
-2005-14-08  Boris Kirzner <borisk@mainsoft.com>
-       * Krb5Helper.cs: ExchangeTokens does proper final handshaking. Wrap/Unwrap
-       perform no action if no integrity and encryption accured.
-       * SecureStream.cs: Private convertion methods became internal, used by 
-       Krb5Helper.
-
-2005-28-07  Boris Kirzner <borisk@mainsoft.com>
-       * Novell.Directory.Ldap.Security.jvm/ExchangeTokenPrivilegedAction.cs,
-       Novell.Directory.Ldap.Security.jvm/CreateContextPrivilegedAction.cs,
-       Novell.Directory.Ldap.Security.jvm/SecureStream.cs,
-       Novell.Directory.Ldap.Security.jvm/WrapPrivilegedAction.cs,
-       Novell.Directory.Ldap.Security.jvm/Krb5Helper.cs,
-       Novell.Directory.Ldap.Security.jvm/UnwrapPrivilegedAction.cs,
-       Novell.Directory.Ldap.Security.jvm/AuthenticationCallbackHandler.cs: added
-       new classes implementing kerberos authntication support.
diff --git a/mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Security.jvm/CreateContextPrivilegedAction.cs b/mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Security.jvm/CreateContextPrivilegedAction.cs
deleted file mode 100644 (file)
index 73b280f..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-// 
-// Novell.Directory.Ldap.Security.CreateContextPrivilegedAction.cs
-//
-// Authors:
-//  Boris Kirzner <borsk@mainsoft.com>
-//     Konstantin Triger <kostat@mainsoft.com>
-//     
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//\r
-\r
-using System;\r
-\r
-using java.security;\r
-using org.ietf.jgss;\r
-\r
-namespace Novell.Directory.Ldap.Security\r
-{\r
-       internal class CreateContextPrivilegedAction : PrivilegedAction\r
-       {\r
-               #region Fields\r
-\r
-               private readonly bool _encryption;\r
-               private readonly bool _signing;\r
-               private readonly bool _delegation;\r
-               private readonly string _name;\r
-               private readonly string _clientName;\r
-               private readonly string _mech;\r
-\r
-               #endregion //Fields\r
-\r
-               #region Constructors\r
-\r
-               public CreateContextPrivilegedAction(string name, string clientName, string mech, bool encryption, bool signing, bool delegation)\r
-               {\r
-                       _name = name;\r
-                       _clientName = clientName;\r
-                       _mech = mech;\r
-                       _encryption = encryption;\r
-                       _signing = signing;\r
-                       _delegation = delegation;\r
-               }\r
-\r
-               #endregion // Constructors\r
-\r
-               #region Methods\r
-\r
-               public object run()\r
-               {\r
-                       try {                           \r
-                               Oid krb5Oid = new Oid (_mech);\r
-                               GSSManager manager = GSSManager.getInstance ();\r
-                               GSSName clientName = \r
-                                       manager.createName(_clientName, GSSName__Finals.NT_USER_NAME);\r
-                               GSSCredential clientCreds =\r
-                                       manager.createCredential(clientName,\r
-                                       GSSContext__Finals.INDEFINITE_LIFETIME,\r
-                                       krb5Oid,\r
-                                       GSSCredential__Finals.INITIATE_ONLY);\r
-\r
-//                             try {\r
-                                       GSSName serverName = manager.createName (_name, GSSName__Finals.NT_HOSTBASED_SERVICE, krb5Oid);\r
-                                       GSSContext context = manager.createContext (serverName, krb5Oid, clientCreds, GSSContext__Finals.INDEFINITE_LIFETIME);\r
-\r
-                                       context.requestMutualAuth(true);  \r
-                                       context.requestConf (_encryption);\r
-                                       if (!_encryption || _signing)\r
-                                               context.requestInteg (!_encryption || _signing); \r
-                                       context.requestCredDeleg (_delegation);\r
-\r
-                                       return context;\r
-//                             }\r
-//                             finally {\r
-//                                     // Calling this throws GSSException: Operation unavailable...\r
-//                                     clientCreds.dispose();\r
-//                             }\r
-                       }\r
-                       catch (GSSException e) {\r
-                               throw new PrivilegedActionException (e);\r
-                       }\r
-               }\r
-\r
-               #endregion // Methods\r
-       }\r
-}\r
diff --git a/mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Security.jvm/ExchangeTokenPrivilegedAction.cs b/mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Security.jvm/ExchangeTokenPrivilegedAction.cs
deleted file mode 100644 (file)
index b806967..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-// 
-// Novell.Directory.Ldap.Security.ExchangeTokenPrivilegedAction.cs
-//
-// Authors:
-//  Boris Kirzner <borsk@mainsoft.com>
-//     Konstantin Triger <kostat@mainsoft.com>
-//     
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//\r
-\r
-using System;\r
-\r
-using org.ietf.jgss;\r
-using java.security;\r
-\r
-namespace Novell.Directory.Ldap.Security\r
-{\r
-       internal class ExchangeTokenPrivilegedAction : PrivilegedAction\r
-       {\r
-               #region Fields\r
-\r
-               private readonly sbyte [] _token;\r
-               private readonly GSSContext _context;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Constructors\r
-\r
-               public ExchangeTokenPrivilegedAction(GSSContext context, sbyte [] token)\r
-               {\r
-                       _token = token;\r
-                       _context = context;\r
-               }\r
-\r
-               #endregion // Constructors\r
-\r
-               #region Methods\r
-\r
-               public object run()\r
-               {\r
-                       try {\r
-                               sbyte [] token = _context.initSecContext (_token, 0, _token.Length);\r
-                               return token;\r
-                       }\r
-                       catch (GSSException e) {\r
-                               throw new PrivilegedActionException (e);\r
-                       }\r
-               }\r
-\r
-               #endregion // Methods\r
-       }\r
-}\r
diff --git a/mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Security.jvm/Krb5Helper.cs b/mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Security.jvm/Krb5Helper.cs
deleted file mode 100644 (file)
index 9b58ff5..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-// \r
-// Novell.Directory.Ldap.Security.Krb5Helper.cs\r
-//\r
-// Authors:\r
-//  Boris Kirzner <borsk@mainsoft.com>\r
-//     Konstantin Triger <kostat@mainsoft.com>\r
-//     \r
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)\r
-//\r
-\r
-//\r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-// \r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-//\r
-\r
-using System;\r
-using vmw.common;\r
-\r
-using java.security;\r
-using javax.security.auth;\r
-using org.ietf.jgss;\r
-\r
-\r
-namespace Novell.Directory.Ldap.Security\r
-{\r
-       internal class Krb5Helper : IDisposable\r
-       {\r
-               enum QOP {\r
-                       NO_PROTECTION = 1,\r
-                       INTEGRITY_ONLY_PROTECTION = 2,\r
-                       PRIVACY_PROTECTION = 4\r
-               }\r
-\r
-               #region Fields\r
-\r
-               internal static readonly sbyte [] EmptyToken = new sbyte [0];\r
-                    \r
-               private readonly bool _encryption;\r
-               private readonly bool _signing;\r
-               private readonly bool _delegation;\r
-\r
-               private readonly GSSContext _context;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Constructors\r
-\r
-               public Krb5Helper(string name, string clientName, Subject subject, AuthenticationTypes authenticationTypes, string mech)\r
-               {\r
-                       _encryption = (authenticationTypes & AuthenticationTypes.Sealing) != 0;\r
-                       _signing = (authenticationTypes & AuthenticationTypes.Signing) != 0;\r
-                       _delegation = (authenticationTypes & AuthenticationTypes.Delegation) != 0;\r
-\r
-                       CreateContextPrivilegedAction action = new CreateContextPrivilegedAction (name, clientName, mech,_encryption,_signing,_delegation);\r
-                       try {\r
-                               _context = (GSSContext) Subject.doAs (subject,action);\r
-                       }\r
-                       catch (PrivilegedActionException e) {\r
-                               throw new LdapException ("Problem performing token exchange with the server",LdapException.OTHER,"",e.getCause()); \r
-                       }\r
-               }\r
-\r
-               #endregion // Constructors\r
-\r
-               #region Properties\r
-\r
-               internal GSSContext Context\r
-               {\r
-                       get { return _context; }\r
-               }\r
-\r
-               #endregion // Properties\r
-\r
-               #region Methods\r
-\r
-               public sbyte [] ExchangeTokens(sbyte [] clientToken)\r
-               {\r
-                       if (Context.isEstablished ()) {\r
-                               if (clientToken == null || clientToken.Length == 0)\r
-                                       return Krb5Helper.EmptyToken;\r
-\r
-                               //final handshake\r
-                               byte [] challengeData = (byte []) TypeUtils.ToByteArray (clientToken);\r
-                               byte [] gssOutToken = Unwrap (challengeData, 0, challengeData.Length, new MessageProp (false));\r
-\r
-                               QOP myCop = QOP.NO_PROTECTION;\r
-\r
-                               if (_encryption)\r
-                                       myCop = QOP.PRIVACY_PROTECTION;\r
-                               else if (_signing || (((QOP)gssOutToken [0] & QOP.INTEGRITY_ONLY_PROTECTION) != 0))\r
-                                       myCop = QOP.INTEGRITY_ONLY_PROTECTION;\r
-\r
-                               if ((myCop & (QOP)gssOutToken [0]) == 0)\r
-                                       throw new LdapException ("Server does not support the requested security level", 80, "");\r
-\r
-                               int srvMaxBufSize = SecureStream.NetworkByteOrderToInt (gssOutToken, 1, 3);\r
-\r
-                               //int rawSendSize = Context.getWrapSizeLimit(0, _encryption, srvMaxBufSize);\r
-\r
-                               byte [] gssInToken = new byte [4];\r
-                               gssInToken [0] = (byte) myCop;\r
-\r
-                               SecureStream.IntToNetworkByteOrder (srvMaxBufSize, gssInToken, 1, 3);\r
-\r
-                               gssOutToken = Wrap (gssInToken, 0, gssInToken.Length, new MessageProp (true));\r
-\r
-                               return TypeUtils.ToSByteArray (gssOutToken);\r
-                       }\r
-\r
-                       sbyte [] token = Context.initSecContext (clientToken, 0, clientToken.Length);\r
-\r
-                       if (Context.isEstablished ()) {\r
-                               \r
-                               if (Context.getConfState () != _encryption)\r
-                                       throw new LdapException ("Encryption protocol was not established layer between client and server", 80, "");\r
-                                       \r
-                               if (Context.getCredDelegState () != _delegation) \r
-                                       throw new LdapException ("Credential delegation was not established layer between client and server", 80, "");\r
-                                       \r
-                               if (_signing && (Context.getIntegState () != _signing))\r
-                                       throw new LdapException ("Signing protocol was not established layer between client and server", 80, "");\r
-                                       \r
-                               if (token == null) \r
-                                       return EmptyToken;\r
-                       }\r
-                       return token;\r
-               }\r
-\r
-               public byte [] Wrap(byte [] outgoing, int start, int len) \r
-               {\r
-                       return Wrap (outgoing, start, len, new MessageProp(true));\r
-               }\r
-\r
-               public byte [] Wrap(byte [] outgoing, int start, int len, MessageProp messageProp)\r
-               {\r
-                       if (!Context.isEstablished ())\r
-                               throw new LdapException ("GSSAPI authentication not completed",LdapException.OTHER,"");\r
-\r
-                       if (!(Context.getConfState () || Context.getIntegState ())) {\r
-                               // in the case no encryption and no integrity required - return the original data\r
-                               byte [] buff = new byte [len];\r
-                               Array.Copy (outgoing, start, buff, 0, len);\r
-                               return buff;\r
-                       }\r
-\r
-                       sbyte [] result = Context.wrap (TypeUtils.ToSByteArray (outgoing), start, len, messageProp);\r
-                       return (byte []) TypeUtils.ToByteArray (result);\r
-               }\r
-\r
-               public byte [] Unwrap(byte [] incoming, int start, int len) \r
-               {\r
-                       return Unwrap (incoming, start, len, new MessageProp(true));\r
-               }\r
-\r
-               public byte [] Unwrap(byte [] incoming, int start, int len, MessageProp messageProp)\r
-               {\r
-                       if (!Context.isEstablished ())\r
-                               throw new LdapException ("GSSAPI authentication not completed",LdapException.OTHER,"");\r
-\r
-                       if (!(Context.getConfState () || Context.getIntegState ())) {\r
-                               // in the case no encryption and no integrity required - return the original data\r
-                               byte [] buff = new byte [len];\r
-                               Array.Copy (incoming, start, buff, 0, len);\r
-                               return buff;\r
-                       }\r
-\r
-                       sbyte [] result = Context.unwrap (TypeUtils.ToSByteArray (incoming), start, len, messageProp);\r
-                       return (byte []) TypeUtils.ToByteArray (result);\r
-               }\r
-\r
-               #endregion // Methods\r
-\r
-               #region IDisposable Members\r
-\r
-               public void Dispose() {\r
-                       Context.dispose();\r
-               }\r
-\r
-               #endregion\r
-       }\r
-}\r
diff --git a/mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Security.jvm/SecureStream.cs b/mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Security.jvm/SecureStream.cs
deleted file mode 100644 (file)
index 08a37e6..0000000
+++ /dev/null
@@ -1,208 +0,0 @@
-// \r
-// Novell.Directory.Ldap.Security.SecureStream.cs\r
-//\r
-// Authors:\r
-//  Boris Kirzner <borsk@mainsoft.com>\r
-//     Konstantin Triger <kostat@mainsoft.com>\r
-//     \r
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)\r
-//\r
-\r
-//\r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-// \r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-//\r
-\r
-using System;\r
-using System.IO;\r
-\r
-namespace Novell.Directory.Ldap.Security\r
-{\r
-       internal class SecureStream : Stream\r
-       {\r
-               #region Fields\r
-\r
-               private readonly Stream _stream;\r
-               private readonly Krb5Helper _helper;\r
-\r
-               private readonly byte [] _lenBuf = new byte [4];  \r
-               private byte [] _buffer;\r
-               private int _bufferPosition;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Constructors\r
-\r
-               public SecureStream(Stream stream, Krb5Helper helper): base () \r
-               {\r
-                       _stream = stream;\r
-                       _helper = helper;\r
-               }\r
-\r
-               #endregion // Constructors\r
-\r
-               #region Properties\r
-\r
-               public override bool CanRead \r
-               { \r
-                       get { return _stream.CanRead; }\r
-               }\r
-\r
-               public override bool CanSeek \r
-               { \r
-                       get { return _stream.CanSeek; } \r
-               }\r
-\r
-               public override bool CanWrite \r
-               { \r
-                       get { return _stream.CanWrite; } \r
-               }\r
-\r
-               public override long Length \r
-               { \r
-                       get { throw new NotSupportedException (); } \r
-               }\r
-\r
-               public override long Position \r
-               { \r
-                       get { throw new NotSupportedException (); }\r
-                       set { throw new NotSupportedException (); }\r
-               }\r
-\r
-               #endregion // Properties\r
-\r
-               #region Methods\r
-\r
-               public override void Flush()\r
-               {\r
-                       _stream.Flush ();\r
-               }\r
-\r
-               public override int Read( byte [] buffer, int offset, int count)\r
-               {\r
-                       if (_buffer == null || _bufferPosition >= _buffer.Length) {\r
-                               int actual = Fill ();\r
-                               while (actual == 0)\r
-                                       actual = Fill ();\r
-\r
-                               if (actual == -1)\r
-                                       return -1;                              \r
-                       }\r
-\r
-                       int available = _buffer.Length - _bufferPosition;\r
-                       if (count > available) {\r
-                               Array.Copy (_buffer, _bufferPosition, buffer, offset, available);\r
-                               _bufferPosition = _buffer.Length;\r
-                               return available;\r
-                       }\r
-                       else {\r
-                               Array.Copy (_buffer, _bufferPosition, buffer, offset, count);\r
-                               _bufferPosition += count;\r
-                               return count;\r
-                       }               \r
-               }\r
-\r
-               public override void Close() {\r
-                       _stream.Close();\r
-                       _helper.Dispose();\r
-               }\r
-\r
-               private int Fill()\r
-               {\r
-                       int actual = ReadAll (_lenBuf, 4);\r
-       \r
-                       if (actual != 4) \r
-                               return -1;\r
-\r
-                       int length = NetworkByteOrderToInt (_lenBuf, 0, 4);\r
-\r
-//                     if (length > _recvMaxBufSize)\r
-//                             throw new LdapException(length + " exceeds the negotiated receive buffer size limit: " + _recvMaxBufSize, 80, "");\r
-\r
-                       byte [] rawBuffer = new byte [length];\r
-                       actual = ReadAll (rawBuffer, length);\r
-\r
-                       if (actual != length)\r
-                               throw new LdapException("Expected to read " + length + " bytes, but get " + actual, 80, "");\r
-\r
-                       _buffer = _helper.Unwrap (rawBuffer, 0, length);\r
-                       _bufferPosition = 0;\r
-                       return _buffer.Length;\r
-               }\r
-\r
-               private int ReadAll(byte [] buffer, int total)\r
-               {\r
-                       int count = 0;\r
-                       int pos = 0;\r
-                       while (total > 0) {\r
-                               count = _stream.Read (buffer, pos, total);\r
-\r
-                               if (count == -1)\r
-                                       break;\r
-                                       //return ((pos == 0) ? -1 : pos);\r
-\r
-                               pos += count;\r
-                               total -= count;\r
-                       }\r
-                       return pos;\r
-               }\r
-\r
-               public override long Seek(long offset, SeekOrigin loc)\r
-               {\r
-                       return _stream.Seek (offset, loc);\r
-               }\r
-\r
-               public override void SetLength(long value)\r
-               {\r
-                       _stream.SetLength (value);\r
-               }\r
-\r
-               public override void Write(byte [] buffer, int offset, int count)\r
-               {\r
-                       // FIXME: use GSSCOntext.getWrapSizeLimit to divide the buffer\r
-                       // Generate wrapped token \r
-                       byte [] wrappedToken = _helper.Wrap (buffer, offset, count);\r
-                       // Write out length\r
-                       IntToNetworkByteOrder (wrappedToken.Length, _lenBuf, 0, 4);\r
-                       _stream.Write (_lenBuf, 0, 4);\r
-                       // Write out wrapped token\r
-                       _stream.Write (wrappedToken, 0, wrappedToken.Length);\r
-               }\r
-\r
-               internal static int NetworkByteOrderToInt(byte [] buf, int start, int count) \r
-               {\r
-                       int answer = 0;\r
-                       for (int i = 0; i < count; i++) {\r
-                               answer <<= 8;\r
-                               answer |= ((int)buf [start + i] & 0xff);\r
-                       }\r
-                       return answer;\r
-               }\r
-\r
-               internal static void IntToNetworkByteOrder(int num, byte [] buf, int start, int count) \r
-               {\r
-                       for (int i = count-1; i >= 0; i--) {\r
-                               buf [start + i] = (byte)(num & 0xff);\r
-                               num >>= 8;\r
-                       }\r
-               }\r
-\r
-               #endregion // Methods\r
-       }\r
-}\r
diff --git a/mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Security.jvm/UnwrapPrivilegedAction.cs b/mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Security.jvm/UnwrapPrivilegedAction.cs
deleted file mode 100644 (file)
index 7320678..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-// 
-// Novell.Directory.Ldap.Security.UnwrapPrivilegedAction.cs
-//
-// Authors:
-//  Boris Kirzner <borsk@mainsoft.com>
-//     Konstantin Triger <kostat@mainsoft.com>
-//     
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//\r
-\r
-using System;\r
-using vmw.common;\r
-\r
-using java.security;\r
-using org.ietf.jgss;\r
-\r
-namespace Novell.Directory.Ldap.Security\r
-{\r
-       internal class UnwrapPrivilegedAction : PrivilegedAction\r
-       {\r
-               #region Fields\r
-\r
-               private readonly byte [] _buffer;\r
-               private readonly int _start;\r
-               private readonly int _len;\r
-               private readonly GSSContext _context;\r
-               private readonly MessageProp _messageProperties;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Constructors\r
-\r
-               public UnwrapPrivilegedAction(GSSContext context, byte [] buffer, int start, int len, MessageProp messageProperties)\r
-               {\r
-                       _buffer = buffer;\r
-                       _start = start;\r
-                       _len = len;\r
-                       _context = context;\r
-                       _messageProperties = messageProperties;\r
-               }\r
-\r
-               #endregion // Constructors\r
-\r
-               #region Methods\r
-\r
-               public object run()\r
-               {\r
-                       try {                           \r
-                               sbyte [] result = _context.unwrap (TypeUtils.ToSByteArray (_buffer), _start, _len, _messageProperties);\r
-                               return (byte []) TypeUtils.ToByteArray (result);\r
-                       }\r
-                       catch (GSSException e) {\r
-                               throw new PrivilegedActionException (e);\r
-                       }\r
-               }\r
-\r
-               #endregion // Methods\r
-       }\r
-}\r
diff --git a/mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Security.jvm/WrapPrivilegedAction.cs b/mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Security.jvm/WrapPrivilegedAction.cs
deleted file mode 100644 (file)
index 8ec5a61..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-// 
-// Novell.Directory.Ldap.Security.WrapPrivilegedAction.cs
-//
-// Authors:
-//  Boris Kirzner <borsk@mainsoft.com>
-//     Konstantin Triger <kostat@mainsoft.com>
-//     
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//\r
-\r
-using System;\r
-using vmw.common;\r
-\r
-using java.security;\r
-using org.ietf.jgss;\r
-\r
-namespace Novell.Directory.Ldap.Security\r
-{\r
-       internal class WrapPrivilegedAction : PrivilegedAction\r
-       {\r
-               #region Fields\r
-\r
-               private readonly byte [] _buffer;\r
-               private readonly int _start;\r
-               private readonly int _len;\r
-               private readonly GSSContext _context;\r
-               private readonly MessageProp _messageProperties;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Constructors\r
-\r
-               public WrapPrivilegedAction(GSSContext context, byte [] buffer, int start, int len, MessageProp messageProperties)\r
-               {\r
-                       _buffer = buffer;\r
-                       _start = start;\r
-                       _len = len;\r
-                       _context = context;\r
-                       _messageProperties = messageProperties;\r
-               }\r
-\r
-               #endregion // Constructors\r
-\r
-               #region Methods\r
-\r
-               public object run()\r
-               {\r
-                       try {\r
-                               sbyte [] result = _context.wrap (TypeUtils.ToSByteArray (_buffer), _start, _len, _messageProperties);\r
-                               return (byte []) TypeUtils.ToByteArray (result);\r
-                       }\r
-                       catch (GSSException e) {\r
-                               throw new PrivilegedActionException (e);\r
-                       }\r
-               }\r
-\r
-               #endregion // Methods\r
-       }\r
-}\r
diff --git a/mcs/class/System.Data.OracleClient/System.Data.OracleClient.jvm/OracleCommand.cs b/mcs/class/System.Data.OracleClient/System.Data.OracleClient.jvm/OracleCommand.cs
deleted file mode 100644 (file)
index 1e59ffc..0000000
+++ /dev/null
@@ -1,284 +0,0 @@
-//\r
-// System.Data.OracleClient.OracleCommand\r
-//\r
-// Authors:\r
-//     Konstantin Triger <kostat@mainsoft.com>\r
-//     Boris Kirzner <borisk@mainsoft.com>\r
-//     \r
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)\r
-//\r
-\r
-//\r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-// \r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-//\r
-\r
-\r
-using System;\r
-using System.Collections;\r
-using System.Text;\r
-using System.Text.RegularExpressions;\r
-using System.Data;\r
-using System.Data.Common;\r
-using System.Data.ProviderBase;\r
-using System.Globalization;\r
-\r
-using java.sql;\r
-// Cannot use this because it makes ArrayList ambiguous reference\r
-//using java.util;\r
-#if !USE_DOTNET_REGEXP\r
-using java.util.regex;\r
-#endif\r
-\r
-namespace System.Data.OracleClient {\r
-       public sealed class OracleCommand : AbstractDbCommand {\r
-\r
-               #region Fields\r
-#if USE_DOTNET_REGEXP                  \r
-               internal static readonly Regex NamedParameterStoredProcedureRegExp = new Regex(@"^\s*{?\s*((?<RETVAL>\:\w+)\s*=\s*)?call\s+(?<PROCNAME>(((\[[^\]]*\])|([^\.\(])*)\s*\.\s*){0,2}(\[[^\]]*\]|((\s*[^\.\(\)\{\}\s])+)))\s*(\(\s*(?<USERPARAM>((""([^""]|(""""))*"")|('([^']|(''))*')|[^,])*)?\s*(,\s*(?<USERPARAM>((""([^""]|(""""))*"")|('([^']|(''))*')|[^,])*)\s*)*\))?\s*}?\s*$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);\r
-#else\r
-               internal static readonly Pattern NamedParameterStoredProcedureRegExp = Pattern.compile(@"^\s*\{?\s*(?:(\:\w+)\s*=\s*)?call\s+((?:(?:(?:\[[^\]]*\])|(?:[^\.\(\)\{\}\[\]])*)\s*\.\s*){0,2}(?:\[[^\]]*\]|(?:(?:\s*[^\.\(\)\{\}\[\]])+)))\s*(?:\((.*)\))?\s*\}?\s*$", Pattern.CASE_INSENSITIVE);\r
-#endif\r
-               internal static readonly SimpleRegex NamedParameterRegExp = new OracleParamsRegex();\r
-\r
-//             internal static readonly int oracleTypeRefCursor = java.sql.Types.OTHER;\r
-               \r
-               private int _currentParameterIndex = 0;\r
-               private ResultSet _currentRefCursor;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Constructors\r
-\r
-               /**\r
-                * Initializes a new instance of the OracleCommand class.\r
-                * The base constructor initializes all fields to their default values.\r
-                * The following table shows initial property values for an instance of SqlCommand.\r
-                */\r
-               public OracleCommand() : this(null, null, null) {\r
-               }\r
-\r
-               public OracleCommand(OracleConnection connection) : this(null, connection, null) {\r
-               }\r
-\r
-               /**\r
-                * Initializes a new instance of the OracleCommand class with the text of the query.\r
-                * @param cmdText The text of the query.\r
-                */\r
-               public OracleCommand(String cmdText) : this(cmdText, null, null) {\r
-               }\r
-\r
-               /**\r
-                * Initializes a new instance of the OracleCommand class with the text of the query and a SqlConnection.\r
-                * @param cmdText The text of the query.\r
-                * @param connection A SqlConnection that represents the connection to an instance of SQL Server.\r
-                */\r
-               public OracleCommand(String cmdText, OracleConnection connection) : this(cmdText, connection, null) {\r
-               }\r
-\r
-               /**\r
-                * Initializes a new instance of the OracleCommand class with the text of the query, a SqlConnection, and the Transaction.\r
-                * @param cmdText The text of the query.\r
-                * @param connection A SqlConnection that represents the connection to an instance of SQL Server.\r
-                * @param transaction The SqlTransaction in which the OracleCommand executes.\r
-                */\r
-               public OracleCommand(\r
-                       String cmdText,\r
-                       OracleConnection connection,\r
-                       OracleTransaction transaction)\r
-                       : base(cmdText, connection, transaction) {\r
-               }\r
-\r
-               #endregion // Constructors\r
-\r
-               #region Properties\r
-\r
-               public new OracleConnection Connection {\r
-                       get { return (OracleConnection)base.Connection; }\r
-                       set { base.Connection = (AbstractDBConnection)value; }\r
-               }\r
-\r
-               public new OracleParameterCollection Parameters {\r
-                       get { \r
-                               return (OracleParameterCollection)base.Parameters; \r
-                       }\r
-               }\r
-\r
-               public new OracleTransaction Transaction {\r
-                       get { return (OracleTransaction)base.Transaction; }\r
-                       set { base.Transaction = (DbTransaction)value; }\r
-               }\r
-\r
-               protected override bool SkipParameter(DbParameter parameter) {\r
-                       return ((OracleParameter)parameter).OracleType == OracleType.Cursor;\r
-               }\r
-\r
-               protected sealed override ResultSet CurrentResultSet {\r
-                       get { \r
-                               try {\r
-                                       ResultSet resultSet = base.CurrentResultSet;\r
\r
-                                       if (resultSet != null) {\r
-                                               return resultSet;                                               \r
-                                       }\r
-                                       return CurrentRefCursor;\r
-                               }\r
-                               catch(SQLException e) {\r
-                                       throw CreateException(e);\r
-                               }\r
-                       }\r
-               }\r
-\r
-               private ResultSet CurrentRefCursor {\r
-                       get {\r
-                               if (_currentParameterIndex < 0) {\r
-                                       NextRefCursor();\r
-                               }\r
-                               if (_currentRefCursor == null && _currentParameterIndex < InternalParameters.Count) {\r
-                                       _currentRefCursor = (ResultSet)((CallableStatement)Statement).getObject(_currentParameterIndex + 1);\r
-                               }\r
-                               return _currentRefCursor;\r
-                       }\r
-               }\r
-\r
-#if USE_DOTNET_REGEX\r
-               protected override Regex StoredProcedureRegExp\r
-#else\r
-               protected override java.util.regex.Pattern StoredProcedureRegExp {\r
-#endif\r
-                       get { return NamedParameterStoredProcedureRegExp; }\r
-               }\r
-\r
-               protected override SimpleRegex ParameterRegExp {\r
-                       get { return NamedParameterRegExp; }\r
-               }\r
-\r
-               #endregion // Properties\r
-\r
-               #region Methods\r
-\r
-               protected override bool NextResultSet() {\r
-                       try { \r
-                               bool hasMoreResults = base.NextResultSet();\r
-\r
-                               if (hasMoreResults) {\r
-                                       return true;\r
-                               }\r
-                               else {\r
-                                       return NextRefCursor();\r
-                               }\r
-                       }\r
-                       catch (SQLException e) {\r
-                               throw CreateException(e);\r
-                       }\r
-               }\r
-\r
-               private bool NextRefCursor() {\r
-                       _currentRefCursor = null;\r
-                       for (_currentParameterIndex++;InternalParameters.Count > _currentParameterIndex;_currentParameterIndex++) {\r
-                               OracleParameter param = (OracleParameter)InternalParameters[_currentParameterIndex];\r
-                               if (param.OracleType == OracleType.Cursor && ((param.Direction & ParameterDirection.Output) == ParameterDirection.Output))\r
-                                       return true;                                            \r
-                       }\r
-                       return false;\r
-               }\r
-\r
-               public new OracleDataReader ExecuteReader() {\r
-                       return (OracleDataReader)ExecuteReader(CommandBehavior.Default);\r
-               }\r
-\r
-               public new OracleDataReader ExecuteReader(CommandBehavior behavior) {\r
-                       return (OracleDataReader)base.ExecuteReader(behavior);\r
-               }\r
-\r
-               public new OracleParameter CreateParameter() {\r
-                       return (OracleParameter)CreateParameterInternal();\r
-               } \r
-\r
-               protected sealed override void CheckParameters() {\r
-                       //TBD\r
-               }\r
-\r
-               protected override AbstractDbParameter GetUserParameter(string parameterName, IList userParametersList, int userParametersListPosition) {\r
-                       for(int i=0; i < userParametersList.Count; i++) {\r
-                               OracleParameter userParameter = (OracleParameter)userParametersList[i];\r
-                               if (String.Compare(parameterName, userParameter.InternalPlaceholder.Trim(), true, CultureInfo.InvariantCulture) == 0) {\r
-                                       return userParameter;\r
-                               }\r
-                       }\r
-\r
-                       return null;\r
-               }\r
-\r
-               protected override AbstractDbParameter GetReturnParameter (IList userParametersList) {\r
-                       for(int i=0; i < userParametersList.Count; i++) {\r
-                               AbstractDbParameter userParameter = (AbstractDbParameter)userParametersList[i];\r
-                               if (userParameter.Direction == ParameterDirection.ReturnValue) {\r
-                                       return userParameter;\r
-                               }\r
-                       }\r
-\r
-                       return null; \r
-               }\r
-\r
-               protected sealed override DbParameter CreateParameterInternal() {\r
-                       return new OracleParameter();\r
-               }\r
-\r
-               protected sealed override DbParameterCollection CreateParameterCollection(AbstractDbCommand parent) {\r
-                       return new OracleParameterCollection((OracleCommand)parent);\r
-               }\r
-\r
-               public override object Clone() {\r
-                       OracleCommand clone = (OracleCommand)base.Clone();\r
-                       clone._currentParameterIndex = 0;\r
-                       clone._currentRefCursor = null;\r
-                       return clone;\r
-               }\r
-\r
-               protected override void PrepareInternalParameters() {\r
-                       InternalParameters.Clear();\r
-                       _currentParameterIndex = -1;\r
-               }\r
-\r
-               \r
-               protected sealed override DbDataReader CreateReader() {\r
-                       return new OracleDataReader(this);\r
-               }\r
-\r
-               protected sealed override SystemException CreateException(SQLException e) {\r
-                       return new OracleException(e,Connection);               \r
-               }\r
-\r
-               public object ExecuteOracleScalar() {\r
-                       throw new NotImplementedException();\r
-               }\r
-\r
-#if SUPPORT_ORACLE_TYPES\r
-               public int ExecuteOracleNonQuery(\r
-                       out OracleString rowid\r
-                       ) {\r
-                       throw new NotImplementedException();\r
-               }\r
-#endif\r
-\r
-               #endregion // Methods\r
-      \r
-       }\r
-}
\ No newline at end of file
diff --git a/mcs/class/System.Data.OracleClient/System.Data.OracleClient.jvm/OracleConnection.cs b/mcs/class/System.Data.OracleClient/System.Data.OracleClient.jvm/OracleConnection.cs
deleted file mode 100644 (file)
index 6268f7e..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-//\r
-// System.Data.OracleClient.OracleConnection\r
-//
-// Authors:
-//     Konstantin Triger <kostat@mainsoft.com>
-//     Boris Kirzner <borisk@mainsoft.com>
-//     
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//\r
-\r
-\r
-\r
-using System.Data;\r
-using System.Data.Common;\r
-using System.Data.ProviderBase;\r
-using System.Collections;\r
-\r
-using java.sql;\r
-\r
-using System.Configuration;\r
-using Mainsoft.Data.Configuration;\r
-using Mainsoft.Data.Jdbc.Providers;\r
-\r
-namespace System.Data.OracleClient {\r
-       public sealed class OracleConnection : AbstractDBConnection, System.ICloneable {\r
-               #region Events\r
-\r
-               public event OracleInfoMessageEventHandler InfoMessage;\r
-\r
-               #endregion // Events\r
-               \r
-               #region Constructors\r
-\r
-               public OracleConnection() : this(null) {\r
-               }\r
-\r
-               public OracleConnection(String connectionString) : base(connectionString) {                     \r
-               }\r
-\r
-               #endregion // Constructors\r
-\r
-               #region Methods\r
-\r
-               protected override IConnectionProvider GetConnectionProvider() {\r
-                       IDictionary conProviderDict = ConnectionStringDictionary.Parse(ConnectionString);\r
-                       string provider = (string)conProviderDict["Provider"];\r
-                       if (provider == null)\r
-                               provider = "ORACLECLIENT";\r
-\r
-                       return GetConnectionProvider("Mainsoft.Data.Configuration/OracleClientProviders", provider);\r
-               }\r
-\r
-               public new OracleTransaction BeginTransaction(IsolationLevel level) {\r
-                       return new OracleTransaction(level, this);\r
-               }\r
-\r
-               public new OracleTransaction BeginTransaction() {\r
-                       return BeginTransaction(IsolationLevel.ReadCommitted);\r
-               }\r
-\r
-               public new OracleCommand CreateCommand() {\r
-                       return new OracleCommand(this);\r
-               }\r
-\r
-               protected override DbTransaction BeginDbTransaction(IsolationLevel isolationLevel) {\r
-                       return BeginTransaction();\r
-               }\r
-\r
-               protected override DbCommand CreateDbCommand() {\r
-                       return CreateCommand();\r
-               }\r
-\r
-               protected sealed override SystemException CreateException(SQLException e) {\r
-                       return new OracleException(e,this);             \r
-               }\r
-\r
-               protected sealed override SystemException CreateException(string message) {\r
-                       return new OracleException(message, null, this);        \r
-               }\r
-\r
-               protected sealed override void OnSqlWarning(SQLWarning warning) {\r
-                       OracleErrorCollection col = new OracleErrorCollection(warning, this);\r
-                       OnOracleInfoMessage(new OracleInfoMessageEventArgs(col));\r
-               }\r
-\r
-               private void OnOracleInfoMessage (OracleInfoMessageEventArgs value) {
-                       if (InfoMessage != null) {
-                               InfoMessage (this, value);
-                       }
-               }\r
-\r
-               #endregion // Methods\r
-\r
-       }\r
-}
\ No newline at end of file
diff --git a/mcs/class/System.Data.OracleClient/System.Data.OracleClient.jvm/OracleConvert.cs b/mcs/class/System.Data.OracleClient/System.Data.OracleClient.jvm/OracleConvert.cs
deleted file mode 100644 (file)
index e21da07..0000000
+++ /dev/null
@@ -1,453 +0,0 @@
-//\r
-// System.Data.Oracle.OracleConvert\r
-//\r
-// Authors:\r
-//     Konstantin Triger <kostat@mainsoft.com>\r
-//     \r
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)\r
-//\r
-\r
-//\r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-// \r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-//\r
-\r
-\r
-using System;\r
-using System.Collections;\r
-using System.Data.Common;\r
-using System.Data.ProviderBase;\r
-\r
-using java.sql;\r
-\r
-namespace System.Data.OracleClient {\r
-       #region oracle.sql.Types constants\r
-\r
-       internal enum JavaSqlTypes {\r
-               ARRAY = 2003 ,\r
-               BIGINT = -5, \r
-               BINARY = -2 ,\r
-               BIT = -7 ,\r
-               BLOB = 2004, \r
-               BOOLEAN = 16, \r
-               CHAR = 1, \r
-               CLOB = 2005, \r
-               DATALINK = 70, \r
-               DATE = 91, \r
-               DECIMAL = 3, \r
-               DISTINCT = 2001, \r
-               DOUBLE = 8, \r
-               FLOAT = 6, \r
-               INTEGER = 4, \r
-               JAVA_OBJECT = 2000, \r
-               LONGVARBINARY = -4,\r
-               LONGVARCHAR = -1, \r
-               NULL = 0, \r
-               NUMERIC = 2 ,\r
-               OTHER = 1111 ,\r
-               REAL = 7 ,\r
-               REF = 2006 ,\r
-               SMALLINT = 5,\r
-               STRUCT = 2002, \r
-               TIME = 92, \r
-               TIMESTAMP = 93, \r
-               TINYINT = -6, \r
-               VARBINARY = -3, \r
-               VARCHAR = 12,\r
-\r
-               //ORACLE types, see oracle.jdbc.OracleTypes\r
-               BINARY_FLOAT  = 100,\r
-               BINARY_DOUBLE = 101,\r
-               ROWID = -8,\r
-               CURSOR = -10,\r
-               TIMESTAMPNS = -100,\r
-               TIMESTAMPTZ = -101,\r
-               TIMESTAMPLTZ = -102,\r
-               INTERVALYM      = -103,\r
-               INTERVALDS      = -104,\r
-       }\r
-\r
-       #endregion\r
-       sealed class OracleConvert : DbConvert {\r
-\r
-               #region .Net types constants\r
-\r
-               internal static readonly Type TypeOfBoolean = typeof(Boolean);\r
-               internal static readonly Type TypeOfSByte = typeof(SByte);\r
-               internal static readonly Type TypeOfChar = typeof(Char);\r
-               internal static readonly Type TypeOfInt16 = typeof(Int16);\r
-               internal static readonly Type TypeOfInt32 = typeof(Int32);\r
-               internal static readonly Type TypeOfInt64 = typeof(Int64);\r
-               internal static readonly Type TypeOfByte = typeof(Byte);\r
-               internal static readonly Type TypeOfUInt16 = typeof(UInt16);\r
-               internal static readonly Type TypeOfUInt32 = typeof(UInt32);\r
-               internal static readonly Type TypeOfUInt64 = typeof(UInt64);\r
-               internal static readonly Type TypeOfDouble = typeof(Double);\r
-               internal static readonly Type TypeOfSingle = typeof(Single);\r
-               internal static readonly Type TypeOfDecimal = typeof(Decimal);\r
-               internal static readonly Type TypeOfString = typeof(String);\r
-               internal static readonly Type TypeOfDateTime = typeof(DateTime);                \r
-               internal static readonly Type TypeOfObject = typeof(object);\r
-               internal static readonly Type TypeOfGuid = typeof(Guid);\r
-               internal static readonly Type TypeOfType = typeof(Type);\r
-\r
-               // additional types\r
-               internal static readonly Type TypeOfByteArray = typeof(Byte[]);\r
-               internal static readonly Type TypeOfCharArray = typeof(Char[]);\r
-               internal static readonly Type TypeOfFloat = typeof (float);\r
-               internal static readonly Type TypeOfTimespan = typeof (TimeSpan);\r
-               static readonly Type TypeOfIDataReader = typeof(IDataReader);\r
-\r
-               #endregion\r
-\r
-               #region Methods\r
-\r
-               internal static String JdbcTypeNameToDbTypeName(string jdbcTypeName) {\r
-                       return jdbcTypeName.Trim();;\r
-               }\r
-\r
-               internal static OracleType JdbcTypeToOracleType(int jdbcType) {\r
-                       switch ((JavaSqlTypes)jdbcType) {\r
-                               case JavaSqlTypes.ARRAY: return OracleType.Blob;\r
-                               case JavaSqlTypes.BIGINT: return OracleType.Number;\r
-                               case JavaSqlTypes.BINARY: return OracleType.Blob;\r
-                               case JavaSqlTypes.BIT: return OracleType.Byte;\r
-                               case JavaSqlTypes.BLOB: return OracleType.Blob;\r
-                               case JavaSqlTypes.BOOLEAN: return OracleType.Byte;\r
-                               case JavaSqlTypes.CHAR: return OracleType.Char;\r
-                               case JavaSqlTypes.CLOB: return OracleType.Clob;\r
-//                             case JavaSqlTypes.DATALINK: return OracleType.IUnknown;\r
-                               case JavaSqlTypes.DATE: return OracleType.DateTime;\r
-                               case JavaSqlTypes.DECIMAL: return OracleType.Number;\r
-//                             case JavaSqlTypes.DISTINCT: return OracleType.IUnknown; \r
-                               case JavaSqlTypes.DOUBLE: return OracleType.Double;\r
-                               case JavaSqlTypes.FLOAT: return OracleType.Float;\r
-                               case JavaSqlTypes.INTEGER: return OracleType.Int32;\r
-//                             case JavaSqlTypes.JAVA_OBJECT: return OracleType.IUnknown;\r
-                               case JavaSqlTypes.LONGVARBINARY: return OracleType.LongRaw;\r
-                               case JavaSqlTypes.LONGVARCHAR: return OracleType.LongVarChar;\r
-//                             case JavaSqlTypes.NULL: return OracleType.Empty;\r
-                               case JavaSqlTypes.NUMERIC: return OracleType.Number;\r
-//                             case JavaSqlTypes.OTHER: return OracleType.IUnknown;\r
-//                             case JavaSqlTypes.REAL: return OracleType.Single;\r
-//                             case JavaSqlTypes.REF: return OracleType.IUnknown;\r
-                               case JavaSqlTypes.SMALLINT: return OracleType.Int16;\r
-//                             case JavaSqlTypes.STRUCT: return OracleType.IUnknown;\r
-                               case JavaSqlTypes.TIME: return OracleType.TimestampLocal;\r
-                               case JavaSqlTypes.TIMESTAMP: return OracleType.Timestamp;\r
-                               case JavaSqlTypes.TINYINT: return OracleType.Byte;\r
-                               case JavaSqlTypes.VARBINARY: return OracleType.LongVarChar;\r
-                               default:\r
-                               case JavaSqlTypes.VARCHAR: return OracleType.VarChar;\r
-\r
-                               case JavaSqlTypes.BINARY_FLOAT: return OracleType.Float;\r
-                               case JavaSqlTypes.BINARY_DOUBLE: return OracleType.Double;\r
-                               case JavaSqlTypes.ROWID: return OracleType.RowId;\r
-                               case JavaSqlTypes.CURSOR: return OracleType.Cursor;\r
-                               case JavaSqlTypes.TIMESTAMPNS: return OracleType.Timestamp;\r
-                               case JavaSqlTypes.TIMESTAMPTZ: return OracleType.TimestampWithTZ;\r
-                               case JavaSqlTypes.TIMESTAMPLTZ: return OracleType.TimestampLocal; \r
-                               case JavaSqlTypes.INTERVALYM: return OracleType.IntervalYearToMonth;\r
-                               case JavaSqlTypes.INTERVALDS: return OracleType.IntervalDayToSecond;\r
-                       }\r
-               }\r
-\r
-               internal static OracleType ValueTypeToOracleType(Type type) {\r
-                       switch (Type.GetTypeCode(type)) {\r
-                               case TypeCode.Boolean: return OracleType.Byte;\r
-                               case TypeCode.Byte: return OracleType.Byte;\r
-                               case TypeCode.Char: return OracleType.Char;\r
-                               case TypeCode.DateTime: return OracleType.DateTime;\r
-//                             case TypeCode.DBNull: return OracleType.Empty;\r
-                               case TypeCode.Decimal: return OracleType.Number;\r
-                               case TypeCode.Double: return OracleType.Double;\r
-//                             case TypeCode.Empty: return OracleType.Empty;\r
-                               case TypeCode.Int16: return OracleType.Int16;\r
-                               case TypeCode.Int32: return OracleType.Int32;\r
-                               case TypeCode.Int64: return OracleType.Number;\r
-                               default:\r
-                               case TypeCode.Object: {\r
-                                       if (type.Equals(TypeOfByteArray)) return  OracleType.Blob;\r
-                                       if (type.Equals(TypeOfTimespan)) return OracleType.Timestamp;\r
-                                       if (type.IsSubclassOf(TypeOfIDataReader)) return OracleType.Cursor;\r
-//                                     if (type.Equals(DbTypes.TypeOfGuid)) return OracleType.Guid;\r
-//\r
-                                       if (type.IsEnum)\r
-                                               return ValueTypeToOracleType (Enum.GetUnderlyingType (type));\r
-//\r
-                                       return OracleType.VarChar;\r
-                               }\r
-                               case TypeCode.SByte: return OracleType.SByte;\r
-                               case TypeCode.Single: return OracleType.Float;\r
-                               case TypeCode.String: return OracleType.VarChar;\r
-                               case TypeCode.UInt16: return OracleType.UInt16;\r
-                               case TypeCode.UInt32: return OracleType.UInt32;\r
-                               case TypeCode.UInt64: return OracleType.Number;\r
-                       }\r
-               }\r
-\r
-               internal static Type OracleTypeToValueType(OracleType oleDbType) {\r
-                       switch (oleDbType) {\r
-//                             case OracleType.BigInt : return DbTypes.TypeOfInt64;// typeof(long);\r
-//                             case OracleType.Binary : return DbTypes.TypeOfByteArray;\r
-//                             case OracleType.Boolean : return DbTypes.TypeOfBoolean;\r
-//                             case OracleType.BSTR : return DbTypes.TypeOfString;\r
-                               case OracleType.BFile : return TypeOfByteArray;\r
-                               case OracleType.Blob : return TypeOfByteArray;\r
-                               case OracleType.Byte : return TypeOfByte;\r
-                               case OracleType.Char : return TypeOfString;\r
-                               case OracleType.Clob : return TypeOfCharArray;\r
-                               case OracleType.Cursor : return TypeOfIDataReader;\r
-                               case OracleType.DateTime : return TypeOfDateTime;\r
-//                             case OracleType.Currency : return TypeOfDecimal;\r
-//                             case OracleType.Date : return TypeOfDateTime;\r
-//                             case OracleType.DBDate : return TypeOfDateTime;\r
-//                             case OracleType.DBTime : return TypeOfTimespan;\r
-//                             case OracleType.DBTimeStamp : return TypeOfDateTime;\r
-//                             case OracleType.Decimal : return TypeOfDecimal;\r
-                               case OracleType.Double : return TypeOfDouble;\r
-                               case OracleType.Float : return TypeOfFloat;\r
-                               case OracleType.Int16 : return TypeOfInt16;\r
-                               case OracleType.Int32 : return TypeOfInt32;\r
-                               case OracleType.IntervalDayToSecond : return TypeOfTimespan;\r
-                               case OracleType.IntervalYearToMonth : return TypeOfInt32;\r
-                               case OracleType.LongRaw : return TypeOfByteArray;\r
-//                             case OracleType.Empty : return null; //typeof(DBNull);\r
-//                             case OracleType.Error : return typeof(Exception);\r
-//                             case OracleType.Filetime : return TypeOfDateTime;\r
-//                             case OracleType.Guid : return TypeOfGuid;\r
-//                             case OracleType.IDispatch : return TypeOfObject;\r
-//                             case OracleType.Integer : return TypeOfInt32;\r
-//                             case OracleType.IUnknown : return TypeOfObject;\r
-//                             case OracleType.LongVarBinary : return TypeOfByteArray;\r
-                               case OracleType.LongVarChar : return TypeOfString;\r
-                               case OracleType.NChar : return TypeOfString;\r
-                               case OracleType.NClob : return TypeOfString;\r
-                               case OracleType.Number : return TypeOfDecimal;\r
-                               case OracleType.NVarChar : return TypeOfString;\r
-                               case OracleType.Raw : return TypeOfByteArray;\r
-\r
-                               case OracleType.RowId : return TypeOfString;\r
-                               case OracleType.SByte : return TypeOfSByte;\r
-                               case OracleType.Timestamp : return TypeOfTimespan;\r
-                               case OracleType.TimestampLocal : return TypeOfTimespan;\r
-                               case OracleType.TimestampWithTZ : return TypeOfTimespan;\r
-                               case OracleType.UInt16 : return TypeOfUInt16;\r
-\r
-                               case OracleType.UInt32 : return TypeOfUInt32;\r
-                               case OracleType.VarChar : return TypeOfString;\r
-//                             case OracleType.LongVarWChar : return TypeOfString;\r
-//                             case OracleType.Numeric : return TypeOfDecimal;\r
-//                             case OracleType.PropVariant : return TypeOfObject;\r
-//                             case OracleType.Single : return TypeOfFloat;\r
-//                             case OracleType.SmallInt : return TypeOfInt16;\r
-//                             case OracleType.TinyInt : return TypeOfSByte;\r
-//                             case OracleType.UnsignedBigInt : return TypeOfUInt64;\r
-//                             case OracleType.UnsignedInt : return TypeOfUInt32;\r
-//                             case OracleType.UnsignedSmallInt : return TypeOfUInt16;\r
-//                             case OracleType.UnsignedTinyInt : return TypeOfByte;\r
-//                             case OracleType.VarBinary : return TypeOfByteArray;\r
-//                             case OracleType.VarChar : return TypeOfString;\r
-//                             case OracleType.Variant : return TypeOfObject;\r
-//                             case OracleType.VarNumeric : return TypeOfDecimal;\r
-//                             case OracleType.VarWChar : return TypeOfString;\r
-//                             case OracleType.WChar : return TypeOfString;\r
-                               default : return TypeOfObject;\r
-                       }\r
-               }\r
-\r
-               internal static OracleType DbTypeToOracleType(DbType dbType) {\r
-                       switch (dbType) {\r
-                               case DbType.AnsiString : return OracleType.VarChar;\r
-                               case DbType.Binary : return OracleType.Blob;\r
-                               case DbType.Byte : return OracleType.Byte;\r
-                               case DbType.Boolean : return OracleType.Byte;\r
-                               case DbType.Currency : return OracleType.Number;\r
-                               case DbType.Date : return OracleType.DateTime;\r
-                               case DbType.DateTime : return OracleType.DateTime;\r
-                               case DbType.Decimal : return OracleType.Number;\r
-                               case DbType.Double : return OracleType.Double;\r
-                               case DbType.Guid : return OracleType.Char;\r
-                               case DbType.Int16 : return OracleType.Int16;\r
-                               case DbType.Int32 : return OracleType.Int32;\r
-                               case DbType.Int64 : return OracleType.Number;\r
-                               case DbType.Object : return OracleType.Cursor;\r
-                               case DbType.SByte : return OracleType.SByte;\r
-                               case DbType.Single : return OracleType.Float;\r
-                               case DbType.String : return OracleType.VarChar;\r
-                               case DbType.Time : return OracleType.Timestamp;\r
-                               case DbType.UInt16 : return OracleType.UInt16;\r
-                               case DbType.UInt32 : return OracleType.UInt32;\r
-                               case DbType.UInt64 : return OracleType.Number;\r
-                               case DbType.VarNumeric : return OracleType.Number;\r
-                               case DbType.AnsiStringFixedLength : return OracleType.NChar;\r
-                               case DbType.StringFixedLength : return OracleType.Char;\r
-                               default : throw ExceptionHelper.InvalidDbType((int)dbType);\r
-                       }\r
-               }\r
-\r
-               internal static DbType OracleTypeToDbType(OracleType oleDbType) {\r
-                       switch (oleDbType) {\r
-                               case OracleType.BFile : return DbType.Binary;\r
-                               case OracleType.Blob : return DbType.Binary;\r
-                               case OracleType.Byte : return DbType.Byte;\r
-                               case OracleType.Char : return DbType.StringFixedLength;\r
-                               case OracleType.Clob : return DbType.String;\r
-                               case OracleType.Cursor : return DbType.Object;\r
-                               case OracleType.DateTime : return DbType.DateTime;\r
-                               case OracleType.Double : return DbType.Double;\r
-                               case OracleType.Float : return DbType.Single;\r
-                               case OracleType.Int16 : return DbType.Int16;\r
-                               case OracleType.Int32 : return DbType.Int32;\r
-                               case OracleType.IntervalDayToSecond : return DbType.Time;\r
-                               case OracleType.IntervalYearToMonth : return DbType.Int32;\r
-                               case OracleType.LongRaw : return DbType.Binary;\r
-                               case OracleType.LongVarChar : return DbType.String;\r
-                               case OracleType.NChar : return DbType.AnsiStringFixedLength;\r
-                               case OracleType.NClob : return DbType.AnsiString;\r
-                               case OracleType.Number : return DbType.VarNumeric;\r
-                               case OracleType.NVarChar : return DbType.AnsiString;\r
-                               case OracleType.Raw : return DbType.Binary;\r
-\r
-                               case OracleType.RowId : return DbType.AnsiStringFixedLength;\r
-                               case OracleType.SByte : return DbType.SByte;\r
-                               case OracleType.Timestamp : return DbType.Time;\r
-                               case OracleType.TimestampLocal : return DbType.Time;\r
-                               case OracleType.TimestampWithTZ : return DbType.Time;\r
-                               case OracleType.UInt16 : return DbType.UInt16;\r
-\r
-                               case OracleType.UInt32 : return DbType.UInt32;\r
-                               case OracleType.VarChar : return DbType.String;\r
-//                             case OracleType.Empty : return DbType.Object;\r
-//                             case OracleType.SmallInt : return DbType.Int16;\r
-//                             case OracleType.Integer : return DbType.Int32;\r
-//                             case OracleType.Single : return DbType.Single;\r
-//                             case OracleType.Double : return DbType.Double;\r
-//                             case OracleType.Currency : return DbType.Currency;\r
-//                             case OracleType.Date : return DbType.DateTime;\r
-//                             case OracleType.BSTR : return DbType.String;\r
-//                             case OracleType.IDispatch : return DbType.Object;\r
-//                             case OracleType.Error : return DbType.Object;\r
-//                             case OracleType.Boolean : return DbType.Boolean;\r
-//                             case OracleType.Variant : return DbType.Object;\r
-//                             case OracleType.IUnknown : return DbType.Object;\r
-//                             case OracleType.Decimal : return DbType.Decimal;\r
-//                             case OracleType.TinyInt : return DbType.SByte;\r
-//                             case OracleType.UnsignedTinyInt : return DbType.Byte;\r
-//                             case OracleType.UnsignedSmallInt : return DbType.UInt16;\r
-//                             case OracleType.UnsignedInt : return DbType.UInt32;\r
-//                             case OracleType.BigInt : return DbType.Int64;\r
-//                             case OracleType.UnsignedBigInt : return DbType.UInt64;\r
-//                             case OracleType.Filetime : return DbType.DateTime;\r
-//                             case OracleType.Guid : return DbType.Guid;\r
-//                             case OracleType.Binary : return DbType.Binary;\r
-//                             case OracleType.Char : return DbType.AnsiStringFixedLength;\r
-//                             case OracleType.WChar : return DbType.StringFixedLength;\r
-//                             case OracleType.Numeric : return DbType.Decimal;\r
-//                             case OracleType.DBDate : return DbType.Date;\r
-//                             case OracleType.DBTime : return DbType.Time;\r
-//                             case OracleType.DBTimeStamp : return DbType.DateTime;\r
-//                             case OracleType.PropVariant : return DbType.Object;\r
-//                             case OracleType.VarNumeric : return DbType.VarNumeric;\r
-//                             case OracleType.VarChar : return DbType.AnsiString;\r
-//                             case OracleType.LongVarChar : return DbType.AnsiString;\r
-//                             case OracleType.VarWChar : return DbType.String;\r
-//                             case OracleType.LongVarWChar : return DbType.String;\r
-//                             case OracleType.VarBinary : return DbType.Binary;\r
-//                             case OracleType.LongVarBinary : return DbType.Binary;\r
-                               default : throw ExceptionHelper.InvalidOleDbType((int)oleDbType);\r
-                       }\r
-               }\r
-\r
-               internal static int     OracleTypeToJdbcType(OracleType oleDbType) {\r
-                       switch(oleDbType) {\r
-                               case OracleType.BFile : return (int)JavaSqlTypes.BINARY;\r
-                               case OracleType.Blob : return (int)JavaSqlTypes.BINARY;\r
-                               case OracleType.Byte : return (int)JavaSqlTypes.TINYINT;\r
-                               case OracleType.Char : return (int)JavaSqlTypes.CHAR;\r
-                               case OracleType.Clob : return (int)JavaSqlTypes.CLOB;\r
-                               case OracleType.Cursor : return (int)JavaSqlTypes.CURSOR;\r
-                               case OracleType.DateTime : return (int)JavaSqlTypes.TIMESTAMP;\r
-                               case OracleType.Double : return (int)JavaSqlTypes.DOUBLE;\r
-                               case OracleType.Float : return (int)JavaSqlTypes.FLOAT;\r
-                               case OracleType.Int16 : return (int)JavaSqlTypes.SMALLINT;\r
-                               case OracleType.Int32 : return (int)JavaSqlTypes.INTEGER;\r
-                               case OracleType.IntervalDayToSecond : return (int)JavaSqlTypes.INTERVALDS;\r
-                               case OracleType.IntervalYearToMonth : return (int)JavaSqlTypes.INTERVALYM;\r
-                               case OracleType.LongRaw : return (int)JavaSqlTypes.LONGVARBINARY;\r
-                               case OracleType.LongVarChar : return (int)JavaSqlTypes.LONGVARCHAR;\r
-                               case OracleType.NChar : return (int)JavaSqlTypes.CHAR;\r
-                               case OracleType.NClob : return (int)JavaSqlTypes.CLOB;\r
-                               case OracleType.Number : return (int)JavaSqlTypes.NUMERIC;\r
-                               case OracleType.NVarChar : return (int)JavaSqlTypes.VARCHAR;\r
-                               case OracleType.Raw : return (int)JavaSqlTypes.BINARY;\r
-\r
-                               case OracleType.RowId : return (int)JavaSqlTypes.VARCHAR;\r
-                               case OracleType.SByte : return (int)JavaSqlTypes.TINYINT;\r
-                               case OracleType.Timestamp : return (int)JavaSqlTypes.TIMESTAMP;\r
-                               case OracleType.TimestampLocal : return (int)JavaSqlTypes.TIMESTAMP;\r
-                               case OracleType.TimestampWithTZ : return (int)JavaSqlTypes.TIMESTAMP;\r
-                               case OracleType.UInt16 : return (int)JavaSqlTypes.SMALLINT;\r
-\r
-                               case OracleType.UInt32 : return (int)JavaSqlTypes.INTEGER;\r
-                               case OracleType.VarChar : return (int)JavaSqlTypes.VARCHAR;\r
-//                             case OracleType.BigInt : return Types.BIGINT;\r
-//                             case OracleType.Binary : return Types.BINARY;\r
-//                             case OracleType.Boolean : return Types.BIT;\r
-//                             case OracleType.BSTR : return Types.VARCHAR;\r
-//                             case OracleType.Char : return Types.CHAR;\r
-//                             case OracleType.Currency : return Types.DECIMAL;\r
-//                             case OracleType.Date : return Types.TIMESTAMP;\r
-//                             case OracleType.DBDate : return Types.DATE;\r
-//                             case OracleType.DBTime : return Types.TIME;\r
-//                             case OracleType.DBTimeStamp : return Types.TIMESTAMP;\r
-//                             case OracleType.Decimal : return Types.DECIMAL;\r
-//                             case OracleType.Double : return Types.DOUBLE;\r
-//                             case OracleType.Empty : return Types.NULL;\r
-//                             case OracleType.Error : return Types.OTHER;\r
-//                             case OracleType.Filetime : return Types.TIMESTAMP;\r
-//                             case OracleType.Guid : return Types.CHAR;\r
-//                             case OracleType.IDispatch : return Types.OTHER; //throw new ArgumentException("The " + oleDbType + " OracleType value is not supported.");\r
-//                             case OracleType.Integer : return Types.INTEGER;\r
-//                             case OracleType.IUnknown :  return Types.OTHER; //throw new ArgumentException("The " + oleDbType + " OracleType value is not supported.");\r
-//                             case OracleType.LongVarBinary : return Types.LONGVARBINARY;\r
-//                             case OracleType.LongVarChar : return Types.LONGVARCHAR;\r
-//                             case OracleType.LongVarWChar : return Types.LONGVARCHAR;\r
-//                             case OracleType.Numeric : return Types.NUMERIC;\r
-//                             case OracleType.PropVariant : return Types.OTHER;\r
-//                             case OracleType.Single : return Types.FLOAT;\r
-//                             case OracleType.SmallInt : return Types.SMALLINT;\r
-//                             case OracleType.TinyInt : return Types.TINYINT;\r
-//                             case OracleType.UnsignedBigInt : return Types.BIGINT;\r
-//                             case OracleType.UnsignedInt : return Types.INTEGER;\r
-//                             case OracleType.UnsignedSmallInt : return Types.SMALLINT;\r
-//                             case OracleType.UnsignedTinyInt : return Types.TINYINT;\r
-//                             case OracleType.VarBinary : return Types.VARBINARY;\r
-//                             case OracleType.VarChar : return Types.VARCHAR;\r
-//                             case OracleType.Variant : return Types.VARCHAR;\r
-//                             case OracleType.VarNumeric : return Types.DECIMAL;\r
-//                             case OracleType.VarWChar : return Types.VARCHAR;\r
-//                             case OracleType.WChar : return Types.VARCHAR;\r
-                               default : throw ExceptionHelper.InvalidOleDbType((int)oleDbType);\r
-                       }\r
-\r
-                       #endregion // Methods\r
-               }\r
-       }\r
-}\r
diff --git a/mcs/class/System.Data.OracleClient/System.Data.OracleClient.jvm/OracleDataReader.cs b/mcs/class/System.Data.OracleClient/System.Data.OracleClient.jvm/OracleDataReader.cs
deleted file mode 100644 (file)
index 5c1fa39..0000000
+++ /dev/null
@@ -1,276 +0,0 @@
-//\r
-// System.Data.OracleClient.OracleDataReader\r
-//\r
-// Authors:\r
-//     Konstantin Triger <kostat@mainsoft.com>\r
-//     Boris Kirzner <borisk@mainsoft.com>\r
-//\r
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)\r
-//\r
-\r
-//\r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-// \r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-//\r
-\r
-using System.Data.Common;\r
-using System.Data.ProviderBase;\r
-\r
-using java.sql;\r
-\r
-namespace System.Data.OracleClient {\r
-       public sealed class OracleDataReader : AbstractDataReader {\r
-               #region Fields\r
-\r
-               #endregion // Fields\r
-\r
-               #region Constructors\r
-\r
-               internal OracleDataReader(OracleCommand command) : base(command) {\r
-               }\r
-\r
-               #endregion // Constructors\r
-\r
-               #region Methods\r
-\r
-               protected sealed override SystemException CreateException(string message, SQLException e) {\r
-                       return new OracleException(message,e, (OracleConnection)_command.Connection);           \r
-               }\r
-\r
-               protected sealed override SystemException CreateException(java.io.IOException e) {\r
-                       return new OracleException(e, (OracleConnection)_command.Connection);           \r
-               }\r
-\r
-               public override String GetDataTypeName(int columnIndex) {\r
-                       try {\r
-                               string jdbcTypeName = Results.getMetaData().getColumnTypeName(columnIndex + 1);\r
-                               \r
-                               return OracleConvert.JdbcTypeNameToDbTypeName(jdbcTypeName);\r
-                       }\r
-                       catch (SQLException e) {\r
-                               throw CreateException(e);\r
-                       }\r
-               }\r
-\r
-               protected override int GetProviderType(int jdbcType) {\r
-                       return (int)OracleConvert.JdbcTypeToOracleType(jdbcType);   \r
-               }\r
-\r
-               protected override IReaderCacheContainer CreateReaderCacheContainer(int jdbcType, int columnIndex) {\r
-                       switch ((JavaSqlTypes)jdbcType) {\r
-                               case JavaSqlTypes.BINARY_FLOAT:\r
-                                       jdbcType = (int)JavaSqlTypes.REAL;\r
-                                       break;\r
-                               case JavaSqlTypes.BINARY_DOUBLE:\r
-                                       jdbcType = (int)JavaSqlTypes.DOUBLE;\r
-                                       break;\r
-                               case JavaSqlTypes.ROWID:\r
-                                       jdbcType = (int)JavaSqlTypes.VARCHAR;\r
-                                       break;\r
-//                             case JavaSqlTypes.CURSOR:\r
-//                                     jdbcType = JavaSqlTypes.OTHER;\r
-//                                     break;\r
-                               case JavaSqlTypes.TIMESTAMPNS:\r
-                                       jdbcType = (int)JavaSqlTypes.TIMESTAMP;\r
-                                       break;\r
-                               case JavaSqlTypes.TIMESTAMPTZ:\r
-                                       jdbcType = (int)JavaSqlTypes.TIMESTAMP;\r
-                                       break;\r
-                               case JavaSqlTypes.TIMESTAMPLTZ: \r
-                                       jdbcType = (int)JavaSqlTypes.TIMESTAMP;\r
-                                       break;\r
-                               case JavaSqlTypes.INTERVALYM:\r
-                                       jdbcType = (int)JavaSqlTypes.INTEGER;\r
-                                       break;\r
-                               case JavaSqlTypes.INTERVALDS:\r
-                                       jdbcType = (int)JavaSqlTypes.TIMESTAMP;\r
-                                       break;\r
-                       }\r
-                       return base.CreateReaderCacheContainer (jdbcType, columnIndex);\r
-               }\r
-\r
-\r
-               protected override void SetSchemaType(DataRow schemaRow, ResultSetMetaData metaData, int columnIndex) {\r
-                       JavaSqlTypes columnType = (JavaSqlTypes)metaData.getColumnType(columnIndex);\r
-                       switch (columnType) {\r
-                               case JavaSqlTypes.BINARY_FLOAT:\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = OracleConvert.TypeOfFloat;\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       break;\r
-                               case JavaSqlTypes.BINARY_DOUBLE:\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = OracleConvert.TypeOfDouble;\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       break;\r
-                               case JavaSqlTypes.ROWID:\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = OracleConvert.TypeOfString;\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       break;\r
-                               case JavaSqlTypes.CURSOR:\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = OracleConvert.TypeOfDouble;\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       break;\r
-                               case JavaSqlTypes.TIMESTAMPNS:\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = OracleConvert.TypeOfTimespan;\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       break;\r
-                               case JavaSqlTypes.TIMESTAMPTZ:\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = OracleConvert.TypeOfTimespan;\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       break;\r
-                               case JavaSqlTypes.TIMESTAMPLTZ: \r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = OracleConvert.TypeOfTimespan;\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       break;\r
-                               case JavaSqlTypes.INTERVALYM:\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = OracleConvert.TypeOfUInt32;\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       break;\r
-                               case JavaSqlTypes.INTERVALDS:\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = OracleConvert.TypeOfTimespan;\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       break;\r
-                               default:\r
-                                       base.SetSchemaType(schemaRow, metaData, columnIndex);\r
-                                       break;\r
-                       }\r
-               }\r
-\r
-               public override decimal GetDecimal(int i) {\r
-                       if (IsNumeric(i))\r
-                               return GetDecimalSafe(i);\r
-\r
-                       return base.GetDecimal(i);\r
-               }\r
-\r
-               public override double GetDouble(int i) {\r
-                       if (IsNumeric(i))\r
-                               return GetDoubleSafe(i);\r
-\r
-                       return base.GetDouble(i);\r
-               }\r
-\r
-               public override float GetFloat(int i) {\r
-                       if (IsNumeric(i))\r
-                               return GetFloatSafe(i);\r
-\r
-                       return base.GetFloat(i);\r
-               }\r
-//\r
-//             OracleClient does not "excuse" for Int16\r
-//\r
-//             public override short GetInt16(int i) {\r
-//                     if (IsNumeric(i))\r
-//                             return GetInt16Safe(i);\r
-//\r
-//                     return base.GetInt16(i);\r
-//             }\r
-\r
-\r
-               public override int GetInt32(int i) {\r
-                       if (IsNumeric(i))\r
-                               return GetInt32Safe(i);\r
-\r
-                       return base.GetInt32(i);\r
-               }\r
-\r
-               public override long GetInt64(int i) {\r
-                       if (IsNumeric(i))\r
-                               return GetInt64Safe(i);\r
-\r
-                       return base.GetInt64(i);\r
-               }\r
-\r
-#if SUPPORT_ORACLE_TYPES\r
-               #region GetOracleXXX\r
-\r
-               public OracleBFile GetOracleBFile(\r
-                       int i\r
-                       ) {\r
-                       throw new NotImplementedException();\r
-               }\r
-\r
-               public OracleBinary GetOracleBinary(\r
-                       int i\r
-                       ) {\r
-                       throw new NotImplementedException();\r
-               }\r
-\r
-               public OracleDateTime GetOracleDateTime(\r
-                       int i\r
-                       ) {\r
-                       throw new NotImplementedException();\r
-               }\r
-\r
-               public OracleLob GetOracleLob(\r
-                       int i\r
-                       ) {\r
-                       throw new NotImplementedException();\r
-               }\r
-\r
-               public OracleMonthSpan GetOracleMonthSpan(\r
-                       int i\r
-                       ) {\r
-                       throw new NotImplementedException();\r
-               }\r
-\r
-               public OracleNumber GetOracleNumber(\r
-                       int i\r
-                       ) {\r
-                       throw new NotImplementedException();\r
-               }\r
-\r
-               public OracleString GetOracleString(\r
-                       int i\r
-                       ) {\r
-                       throw new NotImplementedException();\r
-               }\r
-\r
-               public OracleTimeSpan GetOracleTimeSpan(\r
-                       int i\r
-                       ) {\r
-                       throw new NotImplementedException();\r
-               }\r
-\r
-               public object GetOracleValue(\r
-                       int i\r
-                       ) {\r
-                       throw new NotImplementedException();\r
-               }\r
-\r
-               public int GetOracleValues(\r
-                       object[] values\r
-                       ) {\r
-                       throw new NotImplementedException();\r
-               }\r
-\r
-               #endregion\r
-#endif\r
-\r
-               #endregion // Methods\r
-       }\r
-}
\ No newline at end of file
diff --git a/mcs/class/System.Data.OracleClient/System.Data.OracleClient.jvm/OracleError.cs b/mcs/class/System.Data.OracleClient/System.Data.OracleClient.jvm/OracleError.cs
deleted file mode 100644 (file)
index fbdb138..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-//\r
-// System.Data.OleDb.OleDbError\r
-//
-// Authors:
-//     Konstantin Triger <kostat@mainsoft.com>
-//     
-// (C) 2006 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//\r
-\r
-\r
-namespace System.Data.OracleClient {\r
-       using java.sql;\r
-       using System.Data.Common;\r
-       using System.Data.ProviderBase;\r
-\r
-       [Serializable]\r
-       internal sealed class OracleError : AbstractDbError {\r
-\r
-               internal OracleError(SQLException e, AbstractDBConnection connection) : base(e, connection) {\r
-               }\r
-    \r
-               public String Message {\r
-                       get {\r
-                               return DbMessage;\r
-                       }\r
-               }\r
-    \r
-               public int NativeError {\r
-                       get {\r
-                               return DbErrorCode;\r
-                       }\r
-               }\r
-    \r
-               public String Source {\r
-                       get {\r
-                               return DbSource;\r
-                       }\r
-               }\r
-    \r
-               public String SQLState {\r
-                       get {\r
-                               return DbSQLState;\r
-                       }\r
-               }\r
-       }\r
-}
\ No newline at end of file
diff --git a/mcs/class/System.Data.OracleClient/System.Data.OracleClient.jvm/OracleErrorCollection.cs b/mcs/class/System.Data.OracleClient/System.Data.OracleClient.jvm/OracleErrorCollection.cs
deleted file mode 100644 (file)
index 8ff780a..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-//\r
-// System.Data.OleDb.OleDbErrorCollection\r
-//
-// Authors:
-//     Konstantin Triger <kostat@mainsoft.com>
-//     
-// (C) 2006 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//\r
-\r
-\r
-namespace System.Data.OracleClient {\r
-\r
-\r
-       using System.Collections;\r
-       using java.sql;\r
-       using System.Data.Common;\r
-       using System.Data.ProviderBase;\r
-\r
-       [Serializable]\r
-       public sealed class OracleErrorCollection : AbstractDbErrorCollection {\r
-               internal OracleErrorCollection(SQLException e, AbstractDBConnection connection) : base(e, connection) {\r
-               }\r
-               /**\r
-                * Gets the error at the specified index.\r
-                *\r
-                * @param index of the error\r
-                * @return Error on specified index\r
-                */\r
-               internal OracleError this[int index] {\r
-                       get {\r
-                               return (OracleError)GetDbItem(index);\r
-                       }\r
-               }\r
-\r
-               protected override AbstractDbError CreateDbError(SQLException e, AbstractDBConnection connection) {\r
-                       return new OracleError(e, connection);\r
-               }\r
-\r
-       }\r
-}
\ No newline at end of file
diff --git a/mcs/class/System.Data.OracleClient/System.Data.OracleClient.jvm/OracleException.cs b/mcs/class/System.Data.OracleClient/System.Data.OracleClient.jvm/OracleException.cs
deleted file mode 100644 (file)
index 155f986..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-//\r
-// System.Data.SqlClient.SqlException\r
-//\r
-// Authors:\r
-//     Konstantin Triger <kostat@mainsoft.com>\r
-//     Boris Kirzner <borisk@mainsoft.com>\r
-//     \r
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)\r
-//\r
-\r
-//\r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-// \r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-//\r
-\r
-namespace System.Data.OracleClient {\r
-\r
-       using java.sql;\r
-\r
-       using System;\r
-       using System.Data.ProviderBase;\r
-\r
-       /**\r
-        * The exception that is thrown when SQL Server returns a warning or error.\r
-        * This class cannot be inherited.\r
-        */\r
-\r
-       /*\r
-       * CURRENT LIMITATIONS\r
-       * 1. Constructor for serialization SqlException(SerializationInfo info, StreamingContext sc) \r
-       *    is not supported.\r
-       * 2. Method "void GetObjectData(...,...)" is not supported (serialization)\r
-       */\r
-\r
-       public sealed class OracleException : AbstractDbException {\r
-               internal OracleException(Exception cause, OracleConnection connection) : base(cause, connection) {}\r
-\r
-               internal OracleException(SQLException cause, OracleConnection connection) : base(cause, connection) {}\r
-\r
-               internal OracleException(string message, SQLException cause, OracleConnection connection) : base(message, cause, connection) {}\r
-\r
-               protected override AbstractDbErrorCollection DbErrors {\r
-                       get {\r
-                               return Errors;\r
-                       }\r
-               }\r
-\r
-        \r
-\r
-               /**\r
-                * Gets the severity level of the error returned from the SQL Server .NET \r
-                * Data Provider.\r
-                * @return severity level of the first error in the collection.\r
-                */\r
-//             public byte Class {\r
-//                     get {\r
-//                             SqlErrorCollection errors = Errors;\r
-//                             return errors.Count > 0 ? errors[0].Class : (byte)0;\r
-//                     }\r
-//             }\r
-\r
-               /**\r
-                * Gets a collection of one or more SqlError objects that give detailed \r
-                * information about exceptions generated by the SQL Server .NET Data Provider.\r
-                * @return collection of SqlError objects\r
-                */\r
-               internal OracleErrorCollection Errors {\r
-                       get {\r
-                               return new OracleErrorCollection(_cause, _connection);\r
-                       }\r
-               }\r
-\r
-               public int Code {\r
-                       get { return DbErrorCode; }\r
-               }\r
-\r
-               /**\r
-                * Gets the line number within the Transact-SQL command batch or stored \r
-                * procedure that generated the error.\r
-                * @return line number of the first error in the collection.\r
-                */\r
-//             public int LineNumber {\r
-//                     get {\r
-//                             SqlErrorCollection errors = Errors;\r
-//                             return errors.Count > 0 ? errors[0].LineNumber : 0;\r
-//                     }\r
-//             }\r
-\r
-               /**\r
-                * Gets a number that identifies the type of error.\r
-                * @return number that identifies the type of first error in the collection\r
-                */\r
-//             public int Number {\r
-//                     get {\r
-//                             SqlErrorCollection errors = Errors;\r
-//                             return errors.Count > 0 ? errors[0].Number : 0;\r
-//                     }\r
-//             }\r
-\r
-               /**\r
-                * Gets the name of the stored procedure or remote procedure call (RPC) \r
-                * that generated the error.\r
-                * @return name of the stored procedure \r
-                */\r
-//             public String Procedure {\r
-//                     get {\r
-//                             SqlErrorCollection errors = Errors;\r
-//                             return errors.Count > 0 ? errors[0].Procedure : null;\r
-//                     }\r
-//             }\r
-\r
-               /**\r
-                * Gets the name of the computer running an instance of SQL Server \r
-                * that generated the error.\r
-                * @return name of the computer where error generated\r
-                */\r
-//             public String Server {\r
-//                     get {\r
-//                             SqlErrorCollection errors = Errors;\r
-//                             return errors.Count > 0 ? errors[0].Server : null;\r
-//                     }\r
-//             }\r
-\r
-\r
-               /**\r
-                * Gets a numeric error code from SQL Server that represents an error, \r
-                * warning or "no data found" message. \r
-                * @return numeric error code from SQL Server\r
-                */\r
-//             public byte State {\r
-//                     get {\r
-//                             SqlErrorCollection errors = Errors;\r
-//                             return errors.Count > 0 ? errors[0].State : (byte)0;\r
-//                     }\r
-//             }\r
-       }\r
-}
\ No newline at end of file
diff --git a/mcs/class/System.Data.OracleClient/System.Data.OracleClient.jvm/OracleParameter.cs b/mcs/class/System.Data.OracleClient/System.Data.OracleClient.jvm/OracleParameter.cs
deleted file mode 100644 (file)
index d6b4e11..0000000
+++ /dev/null
@@ -1,230 +0,0 @@
-//\r
-// System.Data.OracleClient.OracleParameter\r
-//\r
-// Authors:\r
-//     Konstantin Triger <kostat@mainsoft.com>\r
-//     Boris Kirzner <borisk@mainsoft.com>\r
-//     \r
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)\r
-//\r
-\r
-//\r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-// \r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-//\r
-\r
-\r
-using System;\r
-using System.Text;\r
-using System.Data;\r
-using System.Data.Common;\r
-using System.Data.ProviderBase;\r
-using System.Globalization;\r
-\r
-using java.sql;\r
-using java.lang;\r
-\r
-namespace System.Data.OracleClient {\r
-       public sealed class OracleParameter : AbstractDbParameter, ICloneable {\r
-\r
-               #region Fields\r
-\r
-               OracleType _oleDbType = OracleType.VarChar;\r
-\r
-               #endregion // Fields\r
-    \r
-               #region Constructors\r
-\r
-               public OracleParameter() {\r
-               }\r
-    \r
-               public OracleParameter(String parameterName, Object value)\r
-                       : this (parameterName, OracleType.VarChar, 0, ParameterDirection.Input,\r
-                       false, 0, 0, String.Empty, DataRowVersion.Current, value) {\r
-                       IsDbTypeSet = false;\r
-               }\r
-    \r
-               public OracleParameter(String parameterName, OracleType dbType)\r
-                       : this (parameterName, dbType, 0, ParameterDirection.Input,\r
-                       false, 0, 0, String.Empty, DataRowVersion.Current, null) {\r
-               }\r
-    \r
-               public OracleParameter(String parameterName, OracleType dbType, int size)\r
-                       : this (parameterName, dbType, size, ParameterDirection.Input,\r
-                       false, 0, 0, String.Empty, DataRowVersion.Current, null) {\r
-               }\r
-    \r
-               public OracleParameter(String parameterName, OracleType dbType, int size,\r
-                       String sourceColumn)\r
-                       : this (parameterName, dbType, size, ParameterDirection.Input,\r
-                       false, 0, 0, sourceColumn, DataRowVersion.Current, null) {\r
-               }\r
-    \r
-        \r
-               public OracleParameter(String parameterName, \r
-                       OracleType dbType, \r
-                       int size,\r
-                       ParameterDirection direction, \r
-                       bool isNullable,\r
-                       byte precision, \r
-                       byte scale, \r
-                       String sourceColumn,\r
-                       DataRowVersion sourceVersion, \r
-                       Object value) {\r
-                       ParameterName = parameterName;\r
-                       OracleType = dbType;\r
-                       Size = size;\r
-                       Direction = direction;\r
-                       IsNullable = isNullable;\r
-                       Precision = precision;\r
-                       Scale = scale;\r
-                       SourceColumn = sourceColumn;\r
-                       SourceVersion = sourceVersion;\r
-                       Value = value;\r
-               }\r
-\r
-               #endregion // Constructors\r
-\r
-               #region Properties\r
-\r
-               public override DbType DbType {\r
-                       get { return OracleConvert.OracleTypeToDbType(_oleDbType); }           \r
-                       set { OracleType = OracleConvert.DbTypeToOracleType(value); }\r
-               }                \r
-        \r
-               public OracleType OracleType {\r
-                       get { return _oleDbType; }            \r
-                       set {\r
-                               _oleDbType = value;\r
-                               IsDbTypeSet = true;\r
-                       }\r
-               }    \r
-    \r
-               public new Object Value {\r
-                       get { return base.Value; }\r
-                       set {\r
-                               if (!IsDbTypeSet && (value != null) && (value != DBNull.Value)) {\r
-                                       _oleDbType = OracleConvert.ValueTypeToOracleType(value.GetType());\r
-                               }\r
-                               base.Value = value;\r
-                       }\r
-               }\r
-\r
-#if NET_2_0\r
-               public new byte Precision {\r
-                       get { return base.Precision; }\r
-                       set { base.Precision = value; }\r
-               }\r
-\r
-               public new byte Scale {\r
-                       get { return base.Scale; }\r
-                       set { base.Scale = value; }\r
-               }\r
-#endif\r
-\r
-               #endregion // Properties\r
-\r
-               #region Methods\r
-\r
-               public override String ToString() {\r
-                       return ParameterName;\r
-               }\r
-\r
-               protected override string Placeholder {\r
-                       get {\r
-                               if (ParameterName.Length == 0 || ParameterName[0] == ':')\r
-                                       return ParameterName;\r
-\r
-                               return String.Concat(":", ParameterName);\r
-                       }\r
-               }\r
-\r
-               internal string InternalPlaceholder {\r
-                       get {\r
-                               return Placeholder;\r
-                       }\r
-               }\r
-\r
-               protected sealed override object ConvertValue(object value) {\r
-                       // can not convert null or DbNull to other types\r
-                       if (value == null || value == DBNull.Value) {\r
-                               return value;\r
-                       }\r
-\r
-                       // TBD : some other way to do this?\r
-//                     if (OracleType == OracleType.Binary) {\r
-//                             return value;\r
-//                     }\r
-                       // .NET throws an exception to the user.\r
-                       object convertedValue  = value;\r
-\r
-                       // note : if we set user parameter jdbc type inside prepare interbal, the db type is not set\r
-                       if (value is IConvertible && (IsDbTypeSet || IsJdbcTypeSet)) {\r
-                               OracleType oleDbType = (IsDbTypeSet) ? OracleType : OracleConvert.JdbcTypeToOracleType((int)JdbcType);\r
-                               Type to = OracleConvert.OracleTypeToValueType(oleDbType);\r
-                               if (!(value is DateTime && to == OracleConvert.TypeOfTimespan)) //anyway will go by jdbc type\r
-                                       convertedValue = Convert.ChangeType(value,to);\r
-                       }\r
-                       return convertedValue;\r
-               }\r
-\r
-               protected sealed override void SetParameterName(ResultSet res) {\r
-                       ParameterName = res.getString("COLUMN_NAME");\r
-               }\r
-\r
-               protected sealed override void SetParameterDbType(ResultSet res) {\r
-                       int jdbcType = res.getInt("DATA_TYPE");                 \r
-                       // FIXME : is that correct?\r
-                       if (jdbcType == Types.OTHER) {\r
-                               string typeName = res.getString("TYPE_NAME");\r
-                               if (String.Compare("REF CURSOR", typeName, true, CultureInfo.InvariantCulture) == 0) {\r
-                                       jdbcType = (int)JavaSqlTypes.CURSOR;\r
-                               }\r
-                               else if (String.Compare("BLOB",typeName,true, CultureInfo.InvariantCulture) == 0) {\r
-                                       jdbcType = (int)JavaSqlTypes.BLOB;\r
-                               }\r
-                               else if (String.Compare("CLOB",typeName,true, CultureInfo.InvariantCulture) == 0) {\r
-                                       jdbcType = (int)JavaSqlTypes.CLOB;\r
-                               }\r
-                               else if(String.Compare("FLOAT",typeName,true, CultureInfo.InvariantCulture) == 0) {\r
-                                       jdbcType = (int)JavaSqlTypes.FLOAT;\r
-                               }\r
-                               else if(String.Compare("NVARCHAR2",typeName,true, CultureInfo.InvariantCulture) == 0) {\r
-                                       jdbcType = (int)JavaSqlTypes.VARCHAR;\r
-                               }\r
-                               else if(String.Compare("NCHAR",typeName,true, CultureInfo.InvariantCulture) == 0) {\r
-                                       jdbcType = (int)JavaSqlTypes.VARCHAR;\r
-                               }\r
-                       }\r
-                       OracleType = OracleConvert.JdbcTypeToOracleType(jdbcType);\r
-                       JdbcType = jdbcType;\r
-               }\r
-\r
-               protected sealed override void SetSpecialFeatures(ResultSet res) {\r
-                       // do nothing\r
-               }\r
-\r
-               protected sealed override int JdbcTypeFromProviderType() {\r
-                       return OracleConvert.OracleTypeToJdbcType(OracleType);\r
-               }\r
-\r
-               #endregion // Methods\r
-    \r
-       }\r
-}
\ No newline at end of file
diff --git a/mcs/class/System.Data/Mainsoft.Data.Jdbc.Providers.jvm/GenericProvider.cs b/mcs/class/System.Data/Mainsoft.Data.Jdbc.Providers.jvm/GenericProvider.cs
deleted file mode 100644 (file)
index 690250c..0000000
+++ /dev/null
@@ -1,385 +0,0 @@
-//
-// System.Data.OleDb.OleDbConnection
-//
-// Authors:
-//     Konstantin Triger <kostat@mainsoft.com>
-//     Boris Kirzner <borisk@mainsoft.com>
-//     
-// (C) 2006 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-
-using System;
-using System.Data.Common;
-using System.Data.Configuration;
-using System.Collections;
-using System.Collections.Specialized;
-using System.Reflection;
-using System.Text.RegularExpressions;
-using Mainsoft.Data.Configuration;
-
-using System.Globalization;
-
-using java.sql;
-using javax.sql;
-using javax.naming;
-
-namespace Mainsoft.Data.Jdbc.Providers
-{
-       public class GenericProvider : IConnectionProvider
-       {
-               #region JdbcUrlConnector
-
-               sealed class JdbcUrlConnector {
-                       #region Consts
-
-                       private static readonly Regex JdbcUrlPatternRegex= new Regex (@"\$\{(?<VALUE>[^$\{\}]*)\}", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);
-
-                       #endregion // Consts
-
-                       #region Fields
-
-                       readonly IConnectionStringDictionary _keyMapper;
-                       readonly GenericProvider                        _provider;
-                       readonly ArrayList _excludedKeys = new ArrayList();
-
-                       #endregion // Fields
-
-                       #region Constructors
-
-                       internal JdbcUrlConnector (GenericProvider provider, IConnectionStringDictionary keyMapper) {
-                               _provider = provider;
-                               _keyMapper = keyMapper;
-                       }
-
-                       #endregion // Constructors
-
-
-                       #region Methods 
-
-                       internal java.sql.Connection Connection {
-                               get {
-                                       java.util.Properties properties = new java.util.Properties ();
-
-                                       string url = (string)_keyMapper["JdbcURL"];
-                                       if (url == null) {
-                                               string jdbcUrlPattern = (string)_provider.ProviderInfo [ConfigurationConsts.JdbcUrlPattern];
-                                               if (jdbcUrlPattern == null || jdbcUrlPattern.Length == 0) {
-                                                       //throw ExceptionHelper.JdbcUrlPatternNotFound ((string)_provider.ProviderInfo [ConfigurationConsts.Name]);
-                                                       object [] args = new object [] {_provider.ProviderInfo [ConfigurationConsts.Name]};
-                                                       throw new ArgumentException (String.Format("Provider '{0}' is not configured with valid JDBC URL pattern.",args));
-                                               }
-                                               MatchEvaluator evaluator = new MatchEvaluator (ReplaceEvaluator);
-                                               url = JdbcUrlPatternRegex.Replace (jdbcUrlPattern, evaluator);
-                                       }
-                                       else {
-                                               // hack for backward comatibility:
-                                               // if the connection string contains 'Provider',
-                                               // the following mapping will hold:
-                                               // 'User', 'User Id' --> 'user'
-                                               // 'Password' --> 'password'
-                                               if (_keyMapper["Provider"] != null) {
-
-                                                       const string USER = "User";
-                                                       const string USERID = "User Id";
-                                                       const string PASSWORD = "Password";
-
-                                                       string user = (string)_keyMapper[USER];
-                                                       if (user != null) {
-                                                               properties.put("user", user);
-                                                               _excludedKeys.Add(USER);
-                                                       }
-                                                       else {
-                                                               user = (string)_keyMapper[USERID];
-                                                               if (user != null) {
-                                                                       properties.put("user", user);
-                                                                       _excludedKeys.Add(USERID);
-                                                               }
-                                                       }
-
-                                                       string password = (string)_keyMapper[PASSWORD];
-                                                       if (password != null) {
-                                                               properties.put("password", password);
-                                                               _excludedKeys.Add(PASSWORD);
-                                                       }
-                                               }
-                                       }
-
-                                       if (_provider._excludedKeys != null)
-                                               _excludedKeys.AddRange(_provider._excludedKeys);
-
-                                       foreach(string key in _provider.KeyMapping.Keys) {
-                                               object value = _keyMapper [key];
-                                               if (value == null)
-                                                       continue;
-                                               bool contains = false;
-                                               for (int i = 0; i < _excludedKeys.Count; i++) {
-                                                       if (String.Compare((string)_excludedKeys[i], key,
-                                                               true, CultureInfo.InvariantCulture) == 0) {
-                                                               contains = true;
-                                                               break;
-                                                       }
-                                               }
-                                               if (!contains) {
-                                                       properties.put (key, value);
-                                                       _excludedKeys.Add(key);
-                                               }
-                                       }
-
-                                       for (int i = 0; i < _excludedKeys.Count; i++) {
-                                               string value = _keyMapper.GetConnectionStringKey((string)_excludedKeys[i]);
-                                               if (value != null)
-                                                       _excludedKeys[i] = value;
-                                       }
-
-                                       foreach(string key in _keyMapper.Keys) {
-                                               object value = _keyMapper [key];
-                                               if (value == null)
-                                                       continue;
-                                               bool contains = false;
-                                               for (int i = 0; i < _excludedKeys.Count; i++) {
-                                                       if (String.Compare((string)_excludedKeys[i], key,
-                                                               true, CultureInfo.InvariantCulture) == 0) {
-                                                               contains = true;
-                                                               break;
-                                                       }
-                                               }
-                                               if (!contains) {
-                                                       if (_provider._unsupportedKeys != null)
-                                                               for (int i = 0; i < _provider._unsupportedKeys.Length; i++)
-                                                                       if (String.Compare ((string) _provider._unsupportedKeys [i], key,
-                                                                               true, CultureInfo.InvariantCulture) == 0)
-                                                                               throw new NotSupportedException (
-                                                                                       String.Format ("The parameter '{0}' is not supported.", key));
-
-                                                       properties.put (key, value);
-                                               }
-                                       }
-
-                                       Driver d = ActivateJdbcDriver ();
-                                       // TBD : add DriverManager.setLoginTimeout      
-                                       if (d != null)
-                                               return d.connect (url, properties);
-
-                                       return DriverManager.getConnection (url, properties);
-                               }
-                       }
-
-                       private string ReplaceEvaluator (Match m) {
-                               Group g = m.Groups["VALUE"];
-
-                               if (!g.Success)
-                                       return String.Empty;
-
-                               string usedKey = g.Value.Trim();
-
-                               string value = (string)_keyMapper [usedKey];
-                               if (value == null)
-                                       throw new ArgumentException(
-                                               String.Format("Missing parameter {0}", g.Value),
-                                               "ConnectionString");
-
-                               _excludedKeys.Add(usedKey);
-                               return value;
-                       }
-
-                       private Driver ActivateJdbcDriver () {
-                               string driver = (string) _keyMapper["JdbcDriverClassName"];
-                               if (driver == null)
-                                       driver = (string) _provider.ProviderInfo [ConfigurationConsts.JdbcDriverClassName];
-
-                               if (driver != null && driver.Length != 0) {
-                                       try {
-                                               java.lang.ClassLoader contextLoader = (java.lang.ClassLoader) AppDomain.CurrentDomain.GetData ("GH_ContextClassLoader");
-                                               if (contextLoader != null)
-                                                       return (Driver) contextLoader.loadClass (driver).newInstance ();
-                                               return (Driver) java.lang.Class.forName (driver).newInstance ();
-                                       }
-                                       catch (java.lang.ClassNotFoundException e) {
-                                               throw new TypeLoadException (e.Message, e);
-                                       }
-                                       catch (java.lang.InstantiationException e) {
-                                               throw new MemberAccessException (e.Message, e);
-                                       }
-                                       catch (java.lang.IllegalAccessException e) {
-                                               throw new MissingMethodException (e.Message, e);
-                                       }
-                               }
-
-                               return null;
-                       }
-
-                       #endregion // Methods
-               }
-
-               #endregion // JdbcUrlBuilder
-
-               #region DataSourceCache
-
-               private sealed class DataSourceCache : AbstractDbMetaDataCache {
-                       internal DataSource GetDataSource(string dataSourceName,string namingProviderUrl,string namingFactoryInitial) {
-                               Hashtable cache = Cache;
-
-                               DataSource ds = cache[dataSourceName] as DataSource;
-
-                               if (ds != null) {
-                                       return ds;
-                               }
-
-                               Context ctx = null;
-                               
-                               java.util.Properties properties = new java.util.Properties();
-
-                               if ((namingProviderUrl != null) && (namingProviderUrl.Length > 0)) {
-                                       properties.put("java.naming.provider.url",namingProviderUrl);
-                               }
-                               
-                               if ((namingFactoryInitial != null) && (namingFactoryInitial.Length > 0)) {
-                                       properties.put("java.naming.factory.initial",namingFactoryInitial);
-                               }
-
-                               ctx = new InitialContext(properties);
-                               try {
-                                       ds = (DataSource)ctx.lookup(dataSourceName);
-                               }
-                               catch(javax.naming.NameNotFoundException e) {
-                                       // possible that is a Tomcat bug,
-                                       // so try to lookup for jndi datasource with "java:comp/env/" appended
-                                       ds = (DataSource)ctx.lookup("java:comp/env/" + dataSourceName);
-                               }
-
-                               cache[dataSourceName] = ds;
-                               return ds;
-                       }
-               }
-
-               #endregion // DatasourceCache
-
-               #region Fields
-
-               private static DataSourceCache _dataSourceCache = new DataSourceCache();
-
-               private readonly IDictionary _providerInfo;
-               private NameValueCollection _keyMapping;
-               private string[] _excludedKeys;
-               private string[] _unsupportedKeys;
-
-               #endregion // Fields
-
-               #region Constructors
-
-               public GenericProvider(IDictionary providerInfo)
-               {
-                       _providerInfo = providerInfo;
-                       _keyMapping = null;
-               }
-
-               #endregion // Constructors
-
-               #region Properties
-
-               protected IDictionary ProviderInfo
-               {
-                       get { return _providerInfo; }
-               }
-
-               private NameValueCollection KeyMapping
-               {
-                       get
-                       {
-                               if (_keyMapping == null)
-                                       InitKeyMapping ();
-
-                               return _keyMapping;
-                       }
-               }
-
-               #endregion // Properties
-
-               #region Methods
-
-               public virtual java.sql.Connection GetConnection (IConnectionStringDictionary conectionStringBuilder)
-               {
-                       string dataSourceJndi = (string) conectionStringBuilder.GetValue ("jndi-datasource-name");
-
-                       if (dataSourceJndi != null && dataSourceJndi.Length > 0) {
-
-                               string namingProviderUrl = (string) conectionStringBuilder.GetValue ("naming-provider-url");
-                               string namingFactoryInitial = (string) conectionStringBuilder.GetValue ("naming-factory-initial");
-                               DataSource ds = _dataSourceCache.GetDataSource(dataSourceJndi,namingProviderUrl,namingFactoryInitial);
-                               return ds.getConnection();
-                       }
-
-                       JdbcUrlConnector connector = new JdbcUrlConnector (this, conectionStringBuilder);
-                       return connector.Connection;
-               }
-                       
-               public virtual IConnectionStringDictionary GetConnectionStringBuilder (string connectionString)
-               {
-                       return new ConnectionStringDictionary(connectionString, KeyMapping);
-               }
-
-               private void InitKeyMapping ()
-               {
-                       lock (this) {
-                               if (_keyMapping != null)
-                                       return;
-
-                               _keyMapping = new NameValueCollection (StringComparer.OrdinalIgnoreCase);
-
-                               // create key mappings collection
-                               string keyMappingsStr = (string) _providerInfo [ConfigurationConsts.KeyMapping];
-                               if (keyMappingsStr != null) {
-                                       string [] keyMappings = keyMappingsStr.Split (ConfigurationConsts.SemicolonArr);
-                                       foreach (string keyMapping in keyMappings) {
-                                               if (keyMapping.Length == 0)
-                                                       continue;
-                                               int equalsIndex = keyMapping.IndexOf ('=');
-                                               string key = keyMapping.Substring (0, equalsIndex).Trim ();
-                                               string [] mappings = keyMapping.Substring (equalsIndex + 1).Trim ().Split (ConfigurationConsts.CommaArr);
-                                               foreach (string mapping in mappings)
-                                                       _keyMapping.Add (key, mapping.Trim ());
-                                       }
-                               }
-
-                               string keyMappingExcludesStr = (string) _providerInfo [ConfigurationConsts.KeyMappingExcludes];
-                               if (keyMappingExcludesStr != null) {
-                                       _excludedKeys = keyMappingExcludesStr.Split (ConfigurationConsts.CommaArr);
-                                       for (int i = 0; i < _excludedKeys.Length; i++)
-                                               _excludedKeys [i] = _excludedKeys [i].Trim ();
-                               }
-
-                               string keyMappingUnsupportedStr = (string) _providerInfo [ConfigurationConsts.KeyMappingUnsupported];
-                               if (keyMappingUnsupportedStr != null) {
-                                       _unsupportedKeys = keyMappingUnsupportedStr.Split (ConfigurationConsts.CommaArr);
-                                       for (int i = 0; i < _unsupportedKeys.Length; i++)
-                                               _unsupportedKeys [i] = _unsupportedKeys [i].Trim ();
-                               }
-                       }
-               }
-
-               #endregion // Methods
-       }
-}
diff --git a/mcs/class/System.Data/Mainsoft.Data.Jdbc.Providers.jvm/IProvider.cs b/mcs/class/System.Data/Mainsoft.Data.Jdbc.Providers.jvm/IProvider.cs
deleted file mode 100644 (file)
index 5c75800..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-//
-// System.Data.OleDb.OleDbConnection
-//
-// Authors:
-//     Konstantin Triger <kostat@mainsoft.com>
-//     Boris Kirzner <borisk@mainsoft.com>
-//     
-// (C) 2006 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-
-using System;
-using System.Collections;
-using Mainsoft.Data.Configuration;
-
-using java.sql;
-
-namespace Mainsoft.Data.Jdbc.Providers
-{
-       sealed class ConfigurationConsts {
-               #region Constructors
-
-               ConfigurationConsts() {                 
-               }
-
-               #endregion // Constructors
-
-               #region Consts
-
-               public const string Name = "id";
-               public const string KeyMapping = "keyMapping";
-               public const string KeyMappingExcludes = "keyExclude";
-               public const string KeyMappingUnsupported = "keyUnsupported";
-               public const string JdbcUrlPattern = "url";
-               public const string JdbcDriverClassName = "driverClassName";
-               public const string ProviderType = "type";
-
-               public static readonly char [] SemicolonArr = new char [] { ';' };
-               public static readonly char [] CommaArr = new char [] { ',' };
-
-               #endregion // Consts
-
-       }
-
-       public interface IConnectionProvider
-       {
-               java.sql.Connection GetConnection (IConnectionStringDictionary connectionStringBuilder);
-               IConnectionStringDictionary GetConnectionStringBuilder (string connectionString);
-       }
-
-       public interface IPreparedStatement : java.sql.PreparedStatement {
-               void setBit(int parameterIndex, int value);
-               void setChar(int parameterIndex, string value);
-               void setNumeric(int parameterIndex, java.math.BigDecimal value);
-               void setReal(int parameterIndex, double value);
-       }
-}
diff --git a/mcs/class/System.Data/Mainsoft.Data.Jdbc.Providers.jvm/OleDbSqlServerProvider.cs b/mcs/class/System.Data/Mainsoft.Data.Jdbc.Providers.jvm/OleDbSqlServerProvider.cs
deleted file mode 100644 (file)
index 6995c54..0000000
+++ /dev/null
@@ -1,407 +0,0 @@
-//
-// System.Data.OleDb.OleDbConnection
-//
-// Authors:
-//     Konstantin Triger <kostat@mainsoft.com>
-//     Boris Kirzner <borisk@mainsoft.com>
-//     
-// (C) 2006 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections;
-using System.Data.Common;
-using System.Data.Configuration;
-using System.Data.ProviderBase;
-using Mainsoft.Data.Configuration;
-
-using java.net;
-using System.Globalization;
-
-namespace Mainsoft.Data.Jdbc.Providers
-{
-       #region OleDbSqlServerProvider2000
-
-       public class OleDbSqlServerProvider2000 : GenericProvider
-       {
-               #region Consts
-
-               private const string Port = "Port";
-               private const string DefaultInstanceName = "MSSQLSERVER";
-               private const int DefaultTimeout = 15;
-
-               #endregion //Consts
-
-               #region Fields
-
-               #endregion // Fields
-
-               #region Constructors
-
-               public OleDbSqlServerProvider2000 (IDictionary providerInfo) : base (providerInfo)
-               {
-               }
-
-               #endregion // Constructors
-
-               #region Properties
-
-               #endregion // Properties
-
-               #region Methods
-
-               public override IConnectionStringDictionary GetConnectionStringBuilder (string connectionString)
-               {
-                       //TBD: should wrap the IConnectionStringDictionary
-                       IConnectionStringDictionary conectionStringBuilder = base.GetConnectionStringBuilder (connectionString);
-                       OleDbSqlHelper.InitConnectionStringBuilder (conectionStringBuilder);
-                       
-                       string port = (string) conectionStringBuilder [Port];
-                       if (port == null || port.Length == 0) {
-                               port = GetMSSqlPort (OleDbSqlHelper.GetInstanceName (conectionStringBuilder, DefaultInstanceName), OleDbSqlHelper.GetDataSource (conectionStringBuilder), OleDbSqlHelper.GetTimeout (conectionStringBuilder, DefaultTimeout));
-                               conectionStringBuilder.Add (Port, port);
-                       }
-
-                       return conectionStringBuilder;
-               }
-
-               static string GetMSSqlPort(string instanceName, string dataSource, int timeout) {
-                       string port = String.Empty;
-                       try {
-                               DatagramSocket socket = new DatagramSocket();
-
-                               // send request
-                               sbyte[] buf = new sbyte[] {2};
-                               InetAddress address = InetAddress.getByName(dataSource);
-                               DatagramPacket packet = new DatagramPacket(buf, buf.Length, address, 1434);
-                               socket.send(packet);
-                               sbyte[] recbuf = new sbyte[1024];
-                               packet = new DatagramPacket(recbuf, recbuf.Length, packet.getAddress(), packet.getPort());
-
-                               // try to receive from socket while increasing timeouts in geometric progression
-                               int iterationTimeout = 1;
-                               int totalTimeout = 0;
-                               for(;;) {
-                                       socket.setSoTimeout(iterationTimeout);
-                                       try {
-                                               socket.receive(packet);
-                                               break;
-                                       }
-                                       catch (SocketTimeoutException e) {
-                                               totalTimeout += iterationTimeout;
-                                               iterationTimeout *= 2;
-                                               if (totalTimeout >= timeout*1000) {
-                                                       throw new java.sql.SQLException(
-                                                               String.Format ("Unable to retrieve the port number for {0} using UDP on port 1434. Please see your network administrator to solve this problem or add the port number of your SQL server instance to your connection string (i.e. port=1433).", dataSource)
-                                                               );
-                                               }
-                                       }
-                               }
-                               sbyte[] rcvdSbytes = packet.getData();
-                               char[] rcvdChars = new char[rcvdSbytes.Length];
-                               for(int i=0; i < rcvdSbytes.Length; i++) {
-                                       rcvdChars[i] = (char)rcvdSbytes[i];
-                               }
-                               String received = new String(rcvdChars);
-
-                               java.util.StringTokenizer st = new java.util.StringTokenizer(received, ";");
-                               String prev = "";
-                               bool instanceReached = instanceName == null || instanceName.Length == 0;
-                               while (st.hasMoreTokens()) {
-                                       if (!instanceReached) {
-                                               if (prev.Trim().Equals("InstanceName")) {
-                                                       if (String.Compare(instanceName,st.nextToken().Trim(),true, CultureInfo.InvariantCulture) == 0) {
-                                                               instanceReached = true;
-                                                       }
-                                               }
-                                       }
-                                       else {
-                                               if (prev.Trim().Equals("tcp")) {
-                                                       port = st.nextToken().Trim();
-                                                       //ensure we got a valid int
-                                                       java.lang.Integer.parseInt(port);
-                                                       break;
-                                               }
-                                       }
-                                       prev = st.nextToken();
-                               }
-                               socket.close();
-
-                               if (!instanceReached)
-                                       throw new java.sql.SQLException(
-                                               String.Format ("Specified SQL Server '{0}\\{1}' not found.", dataSource, instanceName)
-                                               );
-                               return port;
-
-                       }
-                       catch (java.sql.SQLException) {
-                               throw;
-                       }
-                       catch (Exception e) {
-                               throw new java.sql.SQLException(e.Message);
-                       }
-               }
-
-               #endregion // Methods
-       }
-
-       #endregion // OleDbSqlServerProvider2000
-
-       #region OleDbSqlServerProvider2005
-
-       public class OleDbSqlServerProvider2005 : GenericProvider
-       {
-               #region Consts
-
-               #endregion //Consts
-
-               #region Fields
-
-               #endregion // Fields
-
-               #region Constructors
-
-               public OleDbSqlServerProvider2005 (IDictionary providerInfo) : base (providerInfo)
-               {
-               }
-
-               #endregion // Constructors
-
-               #region Properties
-
-               #endregion // Properties
-
-               #region Methods
-
-               public override IConnectionStringDictionary GetConnectionStringBuilder (string connectionString)
-               {
-                       //TBD: should wrap the IConnectionStringDictionary
-                       IConnectionStringDictionary conectionStringBuilder = base.GetConnectionStringBuilder (connectionString);
-                       OleDbSqlHelper.InitConnectionStringBuilder (conectionStringBuilder);
-                       return conectionStringBuilder;
-               }               
-               
-               public override java.sql.Connection GetConnection(IConnectionStringDictionary conectionStringBuilder)
-               {
-                       return new SqlServer2005Connection (base.GetConnection (conectionStringBuilder));
-               }
-
-               #endregion // Methods
-
-               #region SqlServer2005Connection
-
-               sealed class SqlServer2005Connection : Connection
-               {
-                       #region Constructors
-
-                       public SqlServer2005Connection(java.sql.Connection connection) : base (connection)
-                       {
-                       }
-
-                       #endregion
-
-                       #region Methods
-
-                       public override java.sql.DatabaseMetaData getMetaData()
-                       {
-                               return new SqlServer2005DatabaseMetaData (base.getMetaData ());
-                       }
-
-                       #endregion
-               }
-
-               #endregion
-
-               #region SqlServer2005DatabaseMetaData
-
-               sealed class SqlServer2005DatabaseMetaData : DatabaseMetaData
-               {
-                       #region Fields
-
-                       #endregion // Fields
-
-                       #region Constructors
-
-                       public SqlServer2005DatabaseMetaData (java.sql.DatabaseMetaData databaseMetaData) : base (databaseMetaData)
-                       {
-                       }
-
-                       #endregion // Constructors
-
-                       #region Properties
-
-                       #endregion // Properties
-
-                       #region Methods
-
-                       public override java.sql.ResultSet getProcedureColumns(string arg_0, string arg_1, string arg_2, string arg_3)
-                       {
-                               return new SqlServer2005DatbaseMetaDataResultSet (Wrapped.getProcedureColumns (arg_0, arg_1, arg_2, arg_3));
-                       }
-
-                       #endregion // Methods                                           
-               }
-
-               #endregion
-
-               #region SqlServer2005DatbaseMetaDataResultSet
-
-               sealed class SqlServer2005DatbaseMetaDataResultSet : ResultSet
-               {
-                       #region Consts
-
-                       private const string DataType = "DATA_TYPE";
-
-                       #endregion
-
-                       #region Fields
-
-                       #endregion // Fields
-
-                       #region Constructors
-
-                       public SqlServer2005DatbaseMetaDataResultSet (java.sql.ResultSet resultSet) : base (resultSet)
-                       {
-                       }
-
-                       #endregion // Constructors
-
-                       #region Properties
-
-                       #endregion // Properties
-
-                       #region Methods
-
-                       public override int getInt(int arg_0)
-                       {
-                               int res = base.getInt (arg_0);
-                               if (res == -9) // sql server 2005 jdbc driver value for NVARCHAR
-                                       if (String.CompareOrdinal (getMetaData ().getColumnName (arg_0), DataType) == 0)
-                                               return java.sql.Types.VARCHAR;
-                               if (res == -8) // sql server 2005 jdbc driver value for NVARCHAR
-                                       if (String.CompareOrdinal (getMetaData ().getColumnName (arg_0), DataType) == 0)
-                                               return java.sql.Types.CHAR;
-                               return res;
-                       }
-
-                       public override int getInt(string arg_0)
-                       {
-                               int res = base.getInt (arg_0);
-
-                               if (res == -9) // sql server 2005 jdbc driver value for NVARCHAR
-                                       if (String.CompareOrdinal (arg_0, DataType) == 0)
-                                               return java.sql.Types.VARCHAR;
-
-                               if (res == -8) // sql server 2005 jdbc driver value for NVARCHAR
-                                       if (String.CompareOrdinal (arg_0, DataType) == 0)
-                                               return java.sql.Types.CHAR;
-                               return res;
-                       }
-
-                       #endregion // Methods   
-               }
-
-               #endregion
-       }
-
-       #endregion // OleDbSqlServerProvider2005
-
-       #region OleDbSqlHelper
-
-       class OleDbSqlHelper
-       {
-               private const string Database = "Database";
-               private const string ServerName = "ServerName";
-               private const string Timeout = "Timeout";
-
-               internal static void InitConnectionStringBuilder (IConnectionStringDictionary conectionStringBuilder)
-               {
-                       if (!conectionStringBuilder.Contains("jndi-datasource-name")) {
-
-                               string database = (string) conectionStringBuilder [Database];
-                               if (database == null)
-                                       conectionStringBuilder.Add (Database, String.Empty);
-
-                               string dataSource = GetDataSource (conectionStringBuilder);
-                               string instanceName = GetInstanceName (conectionStringBuilder, null);
-
-                               if (instanceName != null)
-                                       conectionStringBuilder [ServerName] = dataSource + "\\" + instanceName;
-                               else
-                                       conectionStringBuilder [ServerName] = dataSource;                                               
-                       }
-               }               
-
-               // TBD : refactor GetInstanceName and GetDataSource to single method
-               internal static string GetInstanceName (IDictionary keyMapper, string defaultInstanceName)
-               {
-                       string dataSource = (string) keyMapper [ServerName];
-                       string instanceName = String.Empty;
-                       int instanceIdx;
-                       if (dataSource == null || (instanceIdx = dataSource.IndexOf ("\\")) == -1) 
-                               // no named instance specified - use a default name
-                               return defaultInstanceName;
-                       else 
-                               // get named instance name
-                               return dataSource.Substring (instanceIdx + 1);
-               }
-
-               internal static string GetDataSource (IDictionary keyMapper)
-               {
-                       string dataSource = (string) keyMapper [ServerName];
-                       int instanceIdx;
-                       if (dataSource != null && (instanceIdx = dataSource.IndexOf ("\\")) != -1)
-                               // throw out named instance name
-                               dataSource = dataSource.Substring (0,instanceIdx);
-
-                       if (dataSource != null && dataSource.StartsWith ("(") && dataSource.EndsWith (")"))                                     
-                               dataSource = dataSource.Substring (1,dataSource.Length - 2);
-
-                       if (String.Empty.Equals (dataSource) || (String.Compare ("local", dataSource, true, CultureInfo.InvariantCulture) == 0) || (String.CompareOrdinal (".", dataSource) == 0)) 
-                               dataSource = "localhost";
-
-                       return dataSource;
-               }
-
-               internal static int GetTimeout (IDictionary keyMapper, int defaultTimeout)
-               {
-                       string timeoutStr = (string) keyMapper [Timeout];
-                       if ((timeoutStr != null) && (timeoutStr.Length != 0)) {
-                               try {
-                                       return Convert.ToInt32(timeoutStr);
-                               }
-                               catch(FormatException e) {
-                                       throw ExceptionHelper.InvalidValueForKey("connect timeout");
-                               }
-                               catch (OverflowException e) {
-                                       throw ExceptionHelper.InvalidValueForKey("connect timeout");
-                               }
-                       }
-                       return defaultTimeout;
-               }
-       }
-
-       #endregion // OleDbSqlHelper
-
-}
diff --git a/mcs/class/System.Data/System.Data.Common/DbMetaDataCache.cs b/mcs/class/System.Data/System.Data.Common/DbMetaDataCache.cs
deleted file mode 100644 (file)
index ee279b1..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/*\r
-  * Copyright (c) 2002-2004 Mainsoft Corporation.\r
-  *\r
-  * Permission is hereby granted, free of charge, to any person obtaining a\r
-  * copy of this software and associated documentation files (the "Software"),\r
-  * to deal in the Software without restriction, including without limitation\r
-  * the rights to use, copy, modify, merge, publish, distribute, sublicense,\r
-  * and/or sell copies of the Software, and to permit persons to whom the\r
-  * Software is furnished to do so, subject to the following conditions:\r
-  *\r
-  * The above copyright notice and this permission notice shall be included in\r
-  * all copies or substantial portions of the Software.\r
-  *\r
-  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
-  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
-  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
-  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
-  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\r
-  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\r
-  * DEALINGS IN THE SOFTWARE.\r
-  */\r
-\r
-using System;\r
-using System.Collections;\r
-\r
-using java.sql;\r
-\r
-namespace System.Data.Common\r
-{\r
-       #region AbstractDbMetaDataCache\r
-\r
-       internal abstract class AbstractDbMetaDataCache\r
-       {\r
-               Hashtable _cache;\r
-               const int MINUTES_TIMEOUT = 10;\r
-               private long _timestamp;\r
-\r
-               protected AbstractDbMetaDataCache()\r
-               {\r
-                       _cache = Hashtable.Synchronized(new Hashtable());\r
-               }\r
-\r
-               protected Hashtable Cache \r
-               {\r
-                       get\r
-                       {\r
-                               long now = DateTime.Now.Ticks;\r
-                               if (now - _timestamp > MINUTES_TIMEOUT * TimeSpan.TicksPerMinute)\r
-                               {\r
-                                       _timestamp = now;\r
-                                       _cache.Clear();\r
-                               }\r
-\r
-                               return _cache;\r
-                       }\r
-               }\r
-       }\r
-\r
-       #endregion\r
-}\r
diff --git a/mcs/class/System.Data/System.Data.OleDb.jvm/OleDbCommand.cs b/mcs/class/System.Data/System.Data.OleDb.jvm/OleDbCommand.cs
deleted file mode 100644 (file)
index d513278..0000000
+++ /dev/null
@@ -1,285 +0,0 @@
-//\r
-// System.Data.OleDb.OleDbCommand\r
-//\r
-// Authors:\r
-//     Konstantin Triger <kostat@mainsoft.com>\r
-//     Boris Kirzner <borisk@mainsoft.com>\r
-//     \r
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)\r
-//\r
-\r
-//\r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-// \r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-//\r
-\r
-\r
-using System;\r
-using System.Collections;\r
-using System.Text;\r
-using System.Text.RegularExpressions;\r
-using System.Data;\r
-using System.Data.Common;\r
-using System.Data.ProviderBase;\r
-\r
-using java.sql;\r
-// Cannot use this because it makes ArrayList ambiguous reference\r
-//using java.util;\r
-\r
-namespace System.Data.OleDb\r
-{\r
-       public sealed class OleDbCommand : AbstractDbCommand\r
-       {\r
-\r
-               #region Fields\r
-\r
-               internal static readonly int oracleTypeRefCursor = java.sql.Types.OTHER;\r
-               private static readonly int _oracleRefCursor = -10; // oracle.jdbc.OracleTypes.CURSOR\r
-               private int _currentParameterIndex = 0;\r
-               private ResultSet _currentRefCursor;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Constructors\r
-\r
-               static OleDbCommand()\r
-               {\r
-                       try {\r
-                               java.lang.Class OracleTypesClass = java.lang.Class.forName("oracle.jdbc.OracleTypes");\r
-                               _oracleRefCursor = OracleTypesClass.getField("CURSOR").getInt(null);\r
-                       }\r
-                       catch(java.lang.ClassNotFoundException e) {\r
-                               // oracle driver is not in classpath - just continue\r
-                       }\r
-               }\r
-\r
-               /**\r
-                * Initializes a new instance of the OleDbCommand class.\r
-                * The base constructor initializes all fields to their default values.\r
-                * The following table shows initial property values for an instance of SqlCommand.\r
-                */\r
-               public OleDbCommand() : this(null, null, null)\r
-               {\r
-               }\r
-\r
-               public OleDbCommand(OleDbConnection connection) : this(null, connection, null)\r
-               {\r
-               }\r
-\r
-               /**\r
-                * Initializes a new instance of the OleDbCommand class with the text of the query.\r
-                * @param cmdText The text of the query.\r
-                */\r
-               public OleDbCommand(String cmdText) : this(cmdText, null, null)\r
-               {\r
-               }\r
-\r
-               /**\r
-                * Initializes a new instance of the OleDbCommand class with the text of the query and a SqlConnection.\r
-                * @param cmdText The text of the query.\r
-                * @param connection A SqlConnection that represents the connection to an instance of SQL Server.\r
-                */\r
-               public OleDbCommand(String cmdText, OleDbConnection connection) : this(cmdText, connection, null)\r
-               {\r
-               }\r
-\r
-               /**\r
-                * Initializes a new instance of the OleDbCommand class with the text of the query, a SqlConnection, and the Transaction.\r
-                * @param cmdText The text of the query.\r
-                * @param connection A SqlConnection that represents the connection to an instance of SQL Server.\r
-                * @param transaction The SqlTransaction in which the OleDbCommand executes.\r
-                */\r
-               public OleDbCommand(\r
-                       String cmdText,\r
-                       OleDbConnection connection,\r
-                       OleDbTransaction transaction)\r
-                       : base(cmdText, connection, transaction)\r
-               {\r
-               }\r
-\r
-               #endregion // Constructors\r
-\r
-               #region Properties\r
-\r
-               public new OleDbConnection Connection\r
-               {\r
-                       get { return (OleDbConnection)base.Connection; }\r
-                       set { base.Connection = (AbstractDBConnection)value; }\r
-               }\r
-\r
-               public new OleDbParameterCollection Parameters\r
-               {\r
-                       get { \r
-                               return (OleDbParameterCollection)base.Parameters; \r
-                       }\r
-               }\r
-\r
-               public new OleDbTransaction Transaction\r
-               {\r
-                       get { return (OleDbTransaction)base.Transaction; }\r
-                       set { base.Transaction = (DbTransaction)value; }\r
-               }\r
-\r
-               protected internal sealed override ResultSet CurrentResultSet\r
-               {\r
-                       get { \r
-                               try {\r
-                                       ResultSet resultSet = base.CurrentResultSet;\r
\r
-                                       if (resultSet != null) {\r
-                                               return resultSet;                                               \r
-                                       }\r
-                                       return CurrentRefCursor;\r
-                               }\r
-                               catch(SQLException e) {\r
-                                       throw CreateException(e);\r
-                               }\r
-                       }\r
-               }\r
-\r
-               private ResultSet CurrentRefCursor\r
-               {\r
-                       get {\r
-                               if (_currentParameterIndex < 0) {\r
-                                       NextRefCursor();\r
-                               }\r
-                               if (_currentRefCursor == null && _currentParameterIndex < InternalParameters.Count) {\r
-                                       _currentRefCursor = (ResultSet)((CallableStatement)Statement).getObject(_currentParameterIndex + 1);\r
-                               }\r
-                               return _currentRefCursor;\r
-                       }\r
-               }\r
-\r
-               #endregion // Properties\r
-\r
-               #region Methods\r
-\r
-               public new OleDbDataReader ExecuteReader()\r
-               {\r
-                       return (OleDbDataReader)ExecuteReader(CommandBehavior.Default);\r
-               }\r
-\r
-               public new OleDbDataReader ExecuteReader(CommandBehavior behavior)\r
-               {\r
-                       return (OleDbDataReader)base.ExecuteReader(behavior);\r
-               }\r
-\r
-               public new OleDbParameter CreateParameter()\r
-               {\r
-                       return (OleDbParameter)CreateParameterInternal();\r
-               } \r
-\r
-               protected sealed override void CheckParameters()\r
-               {\r
-                       for(int i = 0; i < Parameters.Count; i++) {\r
-                               OleDbParameter parameter = (OleDbParameter)Parameters[i];\r
-                               if ((parameter.OleDbType == OleDbType.Empty) || (parameter.OleDbType == OleDbType.Error)) {\r
-                                       throw ExceptionHelper.ParametersNotInitialized(i,parameter.ParameterName,parameter.OleDbType.ToString());\r
-                               }\r
-\r
-                               if (((parameter.OleDbType == OleDbType.Char) || (parameter.OleDbType == OleDbType.Binary) ||\r
-                                       (parameter.OleDbType == OleDbType.VarWChar) || (parameter.OleDbType == OleDbType.VarBinary) ||\r
-                                       (parameter.OleDbType == OleDbType.VarNumeric)) && (parameter.Size == 0)) {\r
-                                       throw ExceptionHelper.WrongParameterSize("OleDb");\r
-                               }\r
-                       }\r
-               }\r
-\r
-               protected sealed override DbParameter CreateParameterInternal()\r
-               {\r
-                       return new OleDbParameter();\r
-               }\r
-\r
-               protected sealed override DbParameterCollection CreateParameterCollection(AbstractDbCommand parent)\r
-               {\r
-                       return new OleDbParameterCollection((OleDbCommand)parent);\r
-               }\r
-\r
-               public override object Clone() {\r
-                       OleDbCommand clone = (OleDbCommand)base.Clone();\r
-                       clone._currentParameterIndex = 0;\r
-                       clone._currentRefCursor = null;\r
-                       return clone;\r
-               }\r
-\r
-               protected override void PrepareInternalParameters()\r
-               {\r
-                       InternalParameters.Clear();\r
-                       _currentParameterIndex = -1;\r
-               }\r
-\r
-               protected override void BindOutputParameter(AbstractDbParameter parameter, int parameterIndex)\r
-               {\r
-                       CallableStatement callableStatement = ((CallableStatement)Statement);\r
-                       if (((OleDbParameter)parameter).IsOracleRefCursor) {\r
-                               callableStatement.registerOutParameter(++parameterIndex, _oracleRefCursor);\r
-                       }\r
-                       else {\r
-                               base.BindOutputParameter(parameter, parameterIndex);\r
-                       }\r
-               }\r
-\r
-               protected override bool SkipParameter(DbParameter parameter)\r
-               {\r
-                       return ((OleDbParameter)parameter).IsOracleRefCursor;\r
-               }\r
-\r
-               protected internal override bool NextResultSet()\r
-               {\r
-                       try { \r
-                               bool hasMoreResults = base.NextResultSet();\r
-\r
-                               if (hasMoreResults) {\r
-                                       return true;\r
-                               }\r
-                               else {\r
-                                       return NextRefCursor();\r
-                               }\r
-                       }\r
-                       catch (SQLException e) {\r
-                               throw CreateException(e);\r
-                       }\r
-               }\r
-\r
-               private bool NextRefCursor()\r
-               {\r
-                       _currentRefCursor = null;\r
-                       // FIXME : should we count all parameters or only out ones?\r
-                       for (_currentParameterIndex++;InternalParameters.Count > _currentParameterIndex;_currentParameterIndex++) {\r
-                               if (((OleDbParameter)InternalParameters[_currentParameterIndex]).IsOracleRefCursor) {\r
-                                       return true;                                            \r
-                               }\r
-                       }\r
-                       return false;\r
-               }\r
-\r
-               protected sealed override DbDataReader CreateReader()\r
-               {\r
-                       return new OleDbDataReader(this);\r
-               }\r
-\r
-               protected internal sealed override SystemException CreateException(SQLException e)\r
-               {\r
-                       return new OleDbException(e,Connection);                \r
-               }\r
-\r
-               #endregion // Methods\r
-      \r
-       }\r
-}
\ No newline at end of file
diff --git a/mcs/class/System.Data/System.Data.OleDb.jvm/OleDbConnection.cs b/mcs/class/System.Data/System.Data.OleDb.jvm/OleDbConnection.cs
deleted file mode 100644 (file)
index 6c96afb..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-//
-// System.Data.OleDb.OleDbConnection
-//
-// Authors:
-//     Konstantin Triger <kostat@mainsoft.com>
-//     Boris Kirzner <borisk@mainsoft.com>
-//     
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-
-
-using System.Data;
-using System.Data.Common;
-using System.Collections;
-using System.Data.ProviderBase;
-using System.Globalization;
-
-using java.sql;
-
-using System.Configuration;
-using Mainsoft.Data.Configuration;
-using Mainsoft.Data.Jdbc.Providers;
-
-namespace System.Data.OleDb
-{
-       public sealed class OleDbConnection : AbstractDBConnection {
-
-               #region Events
-
-               public event OleDbInfoMessageEventHandler InfoMessage;
-
-               #endregion // Events
-               
-               #region Constructors
-
-               public OleDbConnection() : this(null) {
-               }
-
-               public OleDbConnection(String connectionString) : base(connectionString) {                      
-               }
-
-               #endregion // Constructors
-
-               #region Properties
-
-               public String Provider {
-                       get {
-                               IDictionary conDict = ConnectionStringBuilder;
-                               string provider = (string)conDict["Provider"];
-                               if (provider == null || provider.Length == 0)
-                                       throw ExceptionHelper.OleDbNoProviderSpecified();
-
-                               return provider;
-                       }
-               }
-
-               protected override IConnectionProvider GetConnectionProvider() {
-                       IDictionary conProviderDict = ConnectionStringDictionary.Parse(ConnectionString);
-                       string jdbcUrl = (string)conProviderDict["JdbcUrl"];
-                       if (jdbcUrl == null) {
-                               string provider = (string)conProviderDict["Provider"];
-                               if (provider != null)
-                                       return GetConnectionProvider("Mainsoft.Data.Configuration/OleDbProviders", provider);
-                       }
-
-                       return new GenericProvider (conProviderDict);
-               }
-
-               #endregion // Properties
-
-               #region Methods
-
-               public new OleDbTransaction BeginTransaction(IsolationLevel level)
-               {
-                       return new OleDbTransaction(level, this);
-               }
-
-               public new OleDbTransaction BeginTransaction()
-               {
-                       return BeginTransaction(IsolationLevel.ReadCommitted);
-               }
-
-               public new OleDbCommand CreateCommand()
-               {
-                       return new OleDbCommand(this);
-               }
-
-               protected override DbTransaction BeginDbTransaction(IsolationLevel isolationLevel) {
-                       return BeginTransaction();
-               }
-
-               protected override DbCommand CreateDbCommand() {
-                       return CreateCommand();
-               }
-
-               protected sealed override SystemException CreateException(SQLException e)
-               {
-                       return new OleDbException(e,this);              
-               }
-
-               protected sealed override SystemException CreateException(string message)
-               {
-                       return new OleDbException(message, null, this); 
-               }
-
-               [MonoTODO]
-               public DataTable GetOleDbSchemaTable (Guid schema, object[] restrictions)
-               {
-                       if (State != ConnectionState.Open)
-                               throw ExceptionHelper.ConnectionNotOpened("GetOleDbSchemaTable", State.ToString());
-
-                       try {
-
-                               string[] fixedRestrictions = new string[4];
-                               if (restrictions != null) {
-                                       if (restrictions.Length > 4)
-                                               throw new OleDbException("The parameter is incorrect", null, this);
-
-                                       for (int i = 0, count = restrictions.Length; i < count; i ++) {
-                                               if (restrictions[i] != null) {
-                                                       if (!(restrictions[i] is string))
-                                                               throw new OleDbException("The parameter is incorrect", null, this);
-
-                                                       fixedRestrictions[i] = (string)restrictions[i];
-                                               }
-                                       }
-                               }
-
-                               DataTable schemaTable = new DataTable("Tables");
-                               schemaTable.Columns.Add("TABLE_CATALOG");
-                               schemaTable.Columns.Add("TABLE_SCHEMA");
-                               schemaTable.Columns.Add("TABLE_NAME");
-                               schemaTable.Columns.Add("TABLE_TYPE");
-                               schemaTable.Columns.Add("TABLE_GUID");
-                               schemaTable.Columns.Add("DESCRIPTION");
-                               schemaTable.Columns.Add("TABLE_PROPID");
-                               schemaTable.Columns.Add("DATE_CREATED");
-                               schemaTable.Columns.Add("DATE_MODIFIED");
-
-                               java.sql.ResultSet tableRes = JdbcConnection.getMetaData().getTables(
-                                       fixedRestrictions[0],
-                                       fixedRestrictions[1],
-                                       fixedRestrictions[2],
-                                       new string[]{fixedRestrictions[3]});
-
-                               try {
-                                       while(tableRes.next()) {
-                                               DataRow row = schemaTable.NewRow();
-                                               row["TABLE_CATALOG"] = tableRes.getString("TABLE_CAT");
-                                               row["TABLE_SCHEMA"] = tableRes.getString("TABLE_SCHEM");
-                                               row["TABLE_NAME"] = tableRes.getString("TABLE_NAME");
-                                               row["TABLE_TYPE"] = tableRes.getString("TABLE_TYPE");
-                                               row["DESCRIPTION"] = tableRes.getString("REMARKS");
-                
-                                               schemaTable.Rows.Add(row);
-                                       }
-                               }
-                               finally {
-                                       tableRes.close();
-                               }
-
-                               return schemaTable;
-                       }
-                       catch (SQLException e) {
-                               throw CreateException(e);
-                       }
-               }
-
-               public static void ReleaseObjectPool()
-               {
-                       // since we're using connection pool from app servet, this is by design
-                       //throw new NotImplementedException();
-               }
-
-#if NET_2_0
-               [MonoLimitation ("Empty implementation since State relies on java.sql.Connection.State always returning the correct state")]
-               public void ResetState () 
-               {
-               }
-
-#endif
-
-               protected internal sealed override void OnSqlWarning(SQLWarning warning)
-               {
-                       OleDbErrorCollection col = new OleDbErrorCollection(warning, this);
-                       OnOleDbInfoMessage(new OleDbInfoMessageEventArgs(col));
-               }
-
-               private void OnOleDbInfoMessage (OleDbInfoMessageEventArgs value)
-               {
-                       if (InfoMessage != null) {
-                               InfoMessage (this, value);
-                       }
-               }
-
-               #endregion // Methods
-
-       }
-}
diff --git a/mcs/class/System.Data/System.Data.OleDb.jvm/OleDbConvert.cs b/mcs/class/System.Data/System.Data.OleDb.jvm/OleDbConvert.cs
deleted file mode 100644 (file)
index 67de736..0000000
+++ /dev/null
@@ -1,342 +0,0 @@
-//\r
-// System.Data.OleDb.OleDbConvert\r
-//\r
-// Authors:\r
-//     Konstantin Triger <kostat@mainsoft.com>\r
-//     Boris Kirzner <borisk@mainsoft.com>\r
-//     \r
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)\r
-//\r
-\r
-//\r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-// \r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-//\r
-\r
-\r
-using System;\r
-using System.Collections;\r
-using System.Data.Common;\r
-using System.Data.ProviderBase;\r
-\r
-using java.sql;\r
-\r
-namespace System.Data.OleDb\r
-{\r
-       internal sealed class OleDbConvert : DbConvert\r
-       {\r
-               #region Fields\r
-\r
-               private static Hashtable _typeNamesMap;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Constructors\r
-\r
-               static OleDbConvert()\r
-               {\r
-                       _typeNamesMap = new Hashtable(30,CaseInsensitiveHashCodeProvider.DefaultInvariant, CaseInsensitiveComparer.DefaultInvariant);\r
-                       \r
-                       // SqlServer types mapping\r
-//                     _typeNamesMap.Add("numeric(3, 0)1","DBTYPE_I1");\r
-                       _typeNamesMap.Add("smallint","DBTYPE_I2");\r
-                       _typeNamesMap.Add("Int","DBTYPE_I4");\r
-                       _typeNamesMap.Add("bigint","DBTYPE_I8");\r
-                       _typeNamesMap.Add("tinyint","DBTYPE_UI1");\r
-//                     _typeNamesMap.Add("numeric(5,0)","DBTYPE_UI2");\r
-//                     _typeNamesMap.Add("numeric(10,0)","DBTYPE_UI4");\r
-//                     _typeNamesMap.Add("numeric(20,0)","DBTYPE_UI8");\r
-                       _typeNamesMap.Add("Float","DBTYPE_R8");\r
-                       _typeNamesMap.Add("Real","DBTYPE_R4");\r
-                       _typeNamesMap.Add("numeric","DBTYPE_NUMERIC");\r
-                       _typeNamesMap.Add("decimal","DBTYPE_NUMERIC");\r
-                       _typeNamesMap.Add("money","DBTYPE_CY");\r
-                       _typeNamesMap.Add("smallmoney","DBTYPE_CY");\r
-                       _typeNamesMap.Add("ntext","DBTYPE_WLONGVARCHAR");\r
-                       _typeNamesMap.Add("nchar","DBTYPE_WCHAR");\r
-                       _typeNamesMap.Add("nvarchar","DBTYPE_WVARCHAR");\r
-                       _typeNamesMap.Add("Bit","DBTYPE_BOOL");\r
-//                     _typeNamesMap.Add("nvarchar(4000)","DBTYPE_VARIANT");\r
-                       _typeNamesMap.Add("sql_variant","DBTYPE_VARIANT");\r
-                       _typeNamesMap.Add("uniqueidentifier","DBTYPE_GUID");\r
-                       _typeNamesMap.Add("image","DBTYPE_LONGVARBINARY");\r
-                       _typeNamesMap.Add("timestamp","DBTYPE_BINARY");\r
-                       _typeNamesMap.Add("binary","DBTYPE_BINARY");\r
-                       _typeNamesMap.Add("varbinary","DBTYPE_VARBINARY");\r
-                       _typeNamesMap.Add("char","DBTYPE_CHAR");\r
-                       _typeNamesMap.Add("varchar","DBTYPE_VARCHAR");\r
-                       _typeNamesMap.Add("text","DBTYPE_LONGVARCHAR");\r
-//                     _typeNamesMap.Add("nchar","DBTYPE_WSTR");\r
-//                     _typeNamesMap.Add("nvarchar","DBTYPE_WSTR");\r
-//                     _typeNamesMap.Add("ntext","DBTYPE_WSTR");\r
-//                     _typeNamesMap.Add("datetime","DBTYPE_DATE");\r
-                       _typeNamesMap.Add("datetime","DBTYPE_DBTIMESTAMP");\r
-                       _typeNamesMap.Add("smalldatetime","DBTYPE_DBTIMESTAMP");\r
-                       _typeNamesMap.Add("Ignored","DBTYPE_BYREF");\r
-               }\r
-\r
-               #endregion //Constructors\r
-\r
-               #region Methods\r
-\r
-               internal static String JdbcTypeNameToDbTypeName(string jdbcTypeName)\r
-               {\r
-                       jdbcTypeName = jdbcTypeName.Trim();\r
-                       string dbTypeName = (string)_typeNamesMap[jdbcTypeName];\r
-\r
-                       return (dbTypeName != null) ? dbTypeName : jdbcTypeName;\r
-               }\r
-\r
-               internal static OleDbType JdbcTypeToOleDbType(int jdbcType)\r
-               {\r
-                       switch ((JavaSqlTypes)jdbcType) {\r
-                               case JavaSqlTypes.ARRAY: return OleDbType.Binary;\r
-                               case JavaSqlTypes.BIGINT: return OleDbType.BigInt;\r
-                               case JavaSqlTypes.BINARY: return OleDbType.Binary;\r
-                               case JavaSqlTypes.BIT: return OleDbType.Boolean;\r
-                               case JavaSqlTypes.BLOB: return OleDbType.Binary;\r
-                               case JavaSqlTypes.BOOLEAN: return OleDbType.Boolean;\r
-                               case JavaSqlTypes.CHAR: return OleDbType.Char;\r
-                               case JavaSqlTypes.CLOB: return OleDbType.LongVarWChar;\r
-                               case JavaSqlTypes.DATALINK: return OleDbType.IUnknown;\r
-                               case JavaSqlTypes.DATE: return OleDbType.DBDate;\r
-                               case JavaSqlTypes.DECIMAL: return OleDbType.Decimal;\r
-                               case JavaSqlTypes.DISTINCT: return OleDbType.IUnknown; \r
-                               case JavaSqlTypes.DOUBLE: return OleDbType.Double;\r
-                               case JavaSqlTypes.FLOAT: return OleDbType.Double;\r
-                               case JavaSqlTypes.INTEGER: return OleDbType.Integer;\r
-                               case JavaSqlTypes.JAVA_OBJECT: return OleDbType.IUnknown;\r
-                               case JavaSqlTypes.LONGVARBINARY: return OleDbType.LongVarBinary;\r
-                               case JavaSqlTypes.LONGVARCHAR: return OleDbType.LongVarWChar;\r
-                               case JavaSqlTypes.NULL: return OleDbType.Empty;\r
-                               case JavaSqlTypes.NUMERIC: return OleDbType.Numeric;\r
-                               default:\r
-                               case JavaSqlTypes.OTHER: return OleDbType.IUnknown;\r
-                               case JavaSqlTypes.REAL: return OleDbType.Single;\r
-                               case JavaSqlTypes.REF: return OleDbType.IUnknown;\r
-                               case JavaSqlTypes.SMALLINT: return OleDbType.SmallInt;\r
-                               case JavaSqlTypes.STRUCT: return OleDbType.IUnknown;\r
-                               case JavaSqlTypes.TIME: return OleDbType.DBTime;\r
-                               case JavaSqlTypes.TIMESTAMP: return OleDbType.DBTimeStamp;\r
-                               case JavaSqlTypes.TINYINT: return OleDbType.TinyInt;\r
-                               case JavaSqlTypes.VARBINARY: return OleDbType.VarBinary;\r
-                               case JavaSqlTypes.VARCHAR: return OleDbType.VarChar;\r
-                       }\r
-               }\r
-\r
-               internal static OleDbType ValueTypeToOleDbType(Type type)\r
-               {\r
-                       switch (Type.GetTypeCode(type)) {\r
-                               case TypeCode.Boolean: return OleDbType.Boolean;\r
-                               case TypeCode.Byte: return OleDbType.UnsignedTinyInt;\r
-                               case TypeCode.Char: return OleDbType.Char;\r
-                               case TypeCode.DateTime: return OleDbType.Date;\r
-                               case TypeCode.DBNull: return OleDbType.Empty;\r
-                               case TypeCode.Decimal: return OleDbType.Decimal;\r
-                               case TypeCode.Double: return OleDbType.Double;\r
-                               case TypeCode.Empty: return OleDbType.Empty;\r
-                               case TypeCode.Int16: return OleDbType.SmallInt;\r
-                               case TypeCode.Int32: return OleDbType.Integer;\r
-                               case TypeCode.Int64: return OleDbType.BigInt;\r
-                               default:\r
-                               case TypeCode.Object: {\r
-                                       if (type.Equals(DbTypes.TypeOfByteArray)) return  OleDbType.Binary;\r
-                                       if (type.Equals(DbTypes.TypeOfTimespan)) return OleDbType.DBTime;\r
-                                       if (type.Equals(DbTypes.TypeOfGuid)) return OleDbType.Guid;\r
-\r
-                                       if (type.IsEnum)\r
-                                               return ValueTypeToOleDbType (Enum.GetUnderlyingType (type));\r
-\r
-                                       return OleDbType.IUnknown;\r
-                               }\r
-                               case TypeCode.SByte: return OleDbType.TinyInt;\r
-                               case TypeCode.Single: return OleDbType.Single;\r
-                               case TypeCode.String: return OleDbType.VarWChar;\r
-                               case TypeCode.UInt16: return OleDbType.UnsignedSmallInt;\r
-                               case TypeCode.UInt32: return OleDbType.UnsignedInt;\r
-                               case TypeCode.UInt64: return OleDbType.UnsignedBigInt;\r
-                       }\r
-               }\r
-\r
-               internal static Type OleDbTypeToValueType(OleDbType oleDbType)\r
-               {\r
-                       switch (oleDbType) {\r
-                               case OleDbType.BigInt : return DbTypes.TypeOfInt64;// typeof(long);\r
-                               case OleDbType.Binary : return DbTypes.TypeOfByteArray;\r
-                               case OleDbType.Boolean : return DbTypes.TypeOfBoolean;\r
-                               case OleDbType.BSTR : return DbTypes.TypeOfString;\r
-                               case OleDbType.Char : return DbTypes.TypeOfString;\r
-                               case OleDbType.Currency : return DbTypes.TypeOfDecimal;\r
-                               case OleDbType.Date : return DbTypes.TypeOfDateTime;\r
-                               case OleDbType.DBDate : return DbTypes.TypeOfDateTime;\r
-                               case OleDbType.DBTime : return DbTypes.TypeOfTimespan;\r
-                               case OleDbType.DBTimeStamp : return DbTypes.TypeOfDateTime;\r
-                               case OleDbType.Decimal : return DbTypes.TypeOfDecimal;\r
-                               case OleDbType.Double : return DbTypes.TypeOfDouble;\r
-                               case OleDbType.Empty : return null; //typeof(DBNull);\r
-                               case OleDbType.Error : return typeof(Exception);\r
-                               case OleDbType.Filetime : return DbTypes.TypeOfDateTime;\r
-                               case OleDbType.Guid : return DbTypes.TypeOfGuid;\r
-                               case OleDbType.IDispatch : return DbTypes.TypeOfObject;\r
-                               case OleDbType.Integer : return DbTypes.TypeOfInt32;\r
-                               case OleDbType.IUnknown : return DbTypes.TypeOfObject;\r
-                               case OleDbType.LongVarBinary : return DbTypes.TypeOfByteArray;\r
-                               case OleDbType.LongVarChar : return DbTypes.TypeOfString;\r
-                               case OleDbType.LongVarWChar : return DbTypes.TypeOfString;\r
-                               case OleDbType.Numeric : return DbTypes.TypeOfDecimal;\r
-                               case OleDbType.PropVariant : return DbTypes.TypeOfObject;\r
-                               case OleDbType.Single : return DbTypes.TypeOfFloat;\r
-                               case OleDbType.SmallInt : return DbTypes.TypeOfInt16;\r
-                               case OleDbType.TinyInt : return DbTypes.TypeOfSByte;\r
-                               case OleDbType.UnsignedBigInt : return DbTypes.TypeOfUInt64;\r
-                               case OleDbType.UnsignedInt : return DbTypes.TypeOfUInt32;\r
-                               case OleDbType.UnsignedSmallInt : return DbTypes.TypeOfUInt16;\r
-                               case OleDbType.UnsignedTinyInt : return DbTypes.TypeOfByte;\r
-                               case OleDbType.VarBinary : return DbTypes.TypeOfByteArray;\r
-                               case OleDbType.VarChar : return DbTypes.TypeOfString;\r
-                               case OleDbType.Variant : return DbTypes.TypeOfObject;\r
-                               case OleDbType.VarNumeric : return DbTypes.TypeOfDecimal;\r
-                               case OleDbType.VarWChar : return DbTypes.TypeOfString;\r
-                               case OleDbType.WChar : return DbTypes.TypeOfString;\r
-                               default : return DbTypes.TypeOfObject;\r
-                       }\r
-               }\r
-\r
-               internal static OleDbType DbTypeToOleDbType(DbType dbType)\r
-               {\r
-                       switch (dbType) {\r
-                               case DbType.AnsiString : return OleDbType.VarChar;\r
-                               case DbType.Binary : return OleDbType.VarBinary;\r
-                               case DbType.Byte : return OleDbType.UnsignedTinyInt;\r
-                               case DbType.Boolean : return OleDbType.Boolean;\r
-                               case DbType.Currency : return OleDbType.Currency;\r
-                               case DbType.Date : return OleDbType.DBDate;\r
-                               case DbType.DateTime : return OleDbType.DBTimeStamp;\r
-                               case DbType.Decimal : return OleDbType.Decimal;\r
-                               case DbType.Double : return OleDbType.Double;\r
-                               case DbType.Guid : return OleDbType.Guid;\r
-                               case DbType.Int16 : return OleDbType.SmallInt;\r
-                               case DbType.Int32 : return OleDbType.Integer;\r
-                               case DbType.Int64 : return OleDbType.BigInt;\r
-                               case DbType.Object : return OleDbType.Variant;\r
-                               case DbType.SByte : return OleDbType.TinyInt;\r
-                               case DbType.Single : return OleDbType.Single;\r
-                               case DbType.String : return OleDbType.VarWChar;\r
-                               case DbType.Time : return OleDbType.DBTime;\r
-                               case DbType.UInt16 : return OleDbType.UnsignedSmallInt;\r
-                               case DbType.UInt32 : return OleDbType.UnsignedInt;\r
-                               case DbType.UInt64 : return OleDbType.UnsignedBigInt;\r
-                               case DbType.VarNumeric : return OleDbType.VarNumeric;\r
-                               case DbType.AnsiStringFixedLength : return OleDbType.Char;\r
-                               case DbType.StringFixedLength : return OleDbType.WChar;\r
-                               default : throw ExceptionHelper.InvalidDbType((int)dbType);\r
-                       }\r
-               }\r
-\r
-               internal static DbType OleDbTypeToDbType(OleDbType oleDbType)\r
-               {\r
-                       switch (oleDbType) {\r
-                               case OleDbType.Empty : return DbType.Object;\r
-                               case OleDbType.SmallInt : return DbType.Int16;\r
-                               case OleDbType.Integer : return DbType.Int32;\r
-                               case OleDbType.Single : return DbType.Single;\r
-                               case OleDbType.Double : return DbType.Double;\r
-                               case OleDbType.Currency : return DbType.Currency;\r
-                               case OleDbType.Date : return DbType.DateTime;\r
-                               case OleDbType.BSTR : return DbType.String;\r
-                               case OleDbType.IDispatch : return DbType.Object;\r
-                               case OleDbType.Error : return DbType.Object;\r
-                               case OleDbType.Boolean : return DbType.Boolean;\r
-                               case OleDbType.Variant : return DbType.Object;\r
-                               case OleDbType.IUnknown : return DbType.Object;\r
-                               case OleDbType.Decimal : return DbType.Decimal;\r
-                               case OleDbType.TinyInt : return DbType.SByte;\r
-                               case OleDbType.UnsignedTinyInt : return DbType.Byte;\r
-                               case OleDbType.UnsignedSmallInt : return DbType.UInt16;\r
-                               case OleDbType.UnsignedInt : return DbType.UInt32;\r
-                               case OleDbType.BigInt : return DbType.Int64;\r
-                               case OleDbType.UnsignedBigInt : return DbType.UInt64;\r
-                               case OleDbType.Filetime : return DbType.DateTime;\r
-                               case OleDbType.Guid : return DbType.Guid;\r
-                               case OleDbType.Binary : return DbType.Binary;\r
-                               case OleDbType.Char : return DbType.AnsiStringFixedLength;\r
-                               case OleDbType.WChar : return DbType.StringFixedLength;\r
-                               case OleDbType.Numeric : return DbType.Decimal;\r
-                               case OleDbType.DBDate : return DbType.Date;\r
-                               case OleDbType.DBTime : return DbType.Time;\r
-                               case OleDbType.DBTimeStamp : return DbType.DateTime;\r
-                               case OleDbType.PropVariant : return DbType.Object;\r
-                               case OleDbType.VarNumeric : return DbType.VarNumeric;\r
-                               case OleDbType.VarChar : return DbType.AnsiString;\r
-                               case OleDbType.LongVarChar : return DbType.AnsiString;\r
-                               case OleDbType.VarWChar : return DbType.String;\r
-                               case OleDbType.LongVarWChar : return DbType.String;\r
-                               case OleDbType.VarBinary : return DbType.Binary;\r
-                               case OleDbType.LongVarBinary : return DbType.Binary;\r
-                               default : throw ExceptionHelper.InvalidOleDbType((int)oleDbType);\r
-                       }\r
-               }\r
-\r
-               internal static int     OleDbTypeToJdbcType(OleDbType oleDbType)\r
-               {\r
-                       switch(oleDbType) {\r
-                               case OleDbType.BigInt : return Types.BIGINT;\r
-                               case OleDbType.Binary : return Types.BINARY;\r
-                               case OleDbType.Boolean : return Types.BIT;\r
-                               case OleDbType.BSTR : return Types.VARCHAR;\r
-                               case OleDbType.Char : return Types.CHAR;\r
-                               case OleDbType.Currency : return Types.DECIMAL;\r
-                               case OleDbType.Date : return Types.TIMESTAMP;\r
-                               case OleDbType.DBDate : return Types.DATE;\r
-                               case OleDbType.DBTime : return Types.TIME;\r
-                               case OleDbType.DBTimeStamp : return Types.TIMESTAMP;\r
-                               case OleDbType.Decimal : return Types.DECIMAL;\r
-                               case OleDbType.Double : return Types.DOUBLE;\r
-                               case OleDbType.Empty : return Types.NULL;\r
-                               case OleDbType.Error : return Types.OTHER;\r
-                               case OleDbType.Filetime : return Types.TIMESTAMP;\r
-                               case OleDbType.Guid : return Types.CHAR;\r
-                               case OleDbType.IDispatch : return Types.OTHER; //throw new ArgumentException("The " + oleDbType + " OleDbType value is not supported.");\r
-                               case OleDbType.Integer : return Types.INTEGER;\r
-                               case OleDbType.IUnknown :  return Types.OTHER; //throw new ArgumentException("The " + oleDbType + " OleDbType value is not supported.");\r
-                               case OleDbType.LongVarBinary : return Types.LONGVARBINARY;\r
-                               case OleDbType.LongVarChar : return Types.LONGVARCHAR;\r
-                               case OleDbType.LongVarWChar : return Types.LONGVARCHAR;\r
-                               case OleDbType.Numeric : return Types.NUMERIC;\r
-                               case OleDbType.PropVariant : return Types.OTHER;\r
-                               case OleDbType.Single : return Types.FLOAT;\r
-                               case OleDbType.SmallInt : return Types.SMALLINT;\r
-                               case OleDbType.TinyInt : return Types.TINYINT;\r
-                               case OleDbType.UnsignedBigInt : return Types.BIGINT;\r
-                               case OleDbType.UnsignedInt : return Types.INTEGER;\r
-                               case OleDbType.UnsignedSmallInt : return Types.SMALLINT;\r
-                               case OleDbType.UnsignedTinyInt : return Types.TINYINT;\r
-                               case OleDbType.VarBinary : return Types.VARBINARY;\r
-                               case OleDbType.VarChar : return Types.VARCHAR;\r
-                               case OleDbType.Variant : return Types.VARCHAR;\r
-                               case OleDbType.VarNumeric : return Types.DECIMAL;\r
-                               case OleDbType.VarWChar : return Types.VARCHAR;\r
-                               case OleDbType.WChar : return Types.VARCHAR;\r
-                               default : throw ExceptionHelper.InvalidOleDbType((int)oleDbType);\r
-                       }\r
-\r
-                       #endregion // Methods\r
-               }\r
-       }\r
-}\r
diff --git a/mcs/class/System.Data/System.Data.OleDb.jvm/OleDbDataReader.cs b/mcs/class/System.Data/System.Data.OleDb.jvm/OleDbDataReader.cs
deleted file mode 100644 (file)
index 554298c..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// System.Data.OleDb.OleDbDataReader
-//
-// Authors:
-//     Konstantin Triger <kostat@mainsoft.com>
-//     Boris Kirzner <borisk@mainsoft.com>
-//
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System.Data.Common;
-using System.Data.ProviderBase;
-
-using java.sql;
-
-namespace System.Data.OleDb
-{
-       public sealed class OleDbDataReader : AbstractDataReader
-       {
-               #region Fields
-
-               #endregion // Fields
-
-               #region Constructors
-
-               internal OleDbDataReader(OleDbCommand command) : base(command)
-               {
-               }
-
-               #endregion // Constructors
-
-               #region Methods
-
-               protected sealed override SystemException CreateException(string message, SQLException e)
-               {
-                       return new OleDbException(message,e, (OleDbConnection)_command.Connection);             
-               }
-
-               protected sealed override SystemException CreateException(java.io.IOException e)
-               {
-                       return new OleDbException(e, (OleDbConnection)_command.Connection);             
-               }
-
-               public override String GetDataTypeName(int columnIndex)
-               {
-                       try {
-                               string jdbcTypeName = Results.getMetaData().getColumnTypeName(columnIndex + 1);
-                               
-                               return OleDbConvert.JdbcTypeNameToDbTypeName(jdbcTypeName);
-                       }
-                       catch (SQLException e) {
-                               throw CreateException(e);
-                       }
-               }
-
-               protected override int GetProviderType(int jdbcType)
-               {
-                       return (int)OleDbConvert.JdbcTypeToOleDbType(jdbcType);   
-               }
-
-               [MonoNotSupported("")]
-               public OleDbDataReader GetData (int ordinal)
-               {
-                       throw new NotImplementedException ();
-               }
-
-               #endregion // Methods
-       }
-}
\ No newline at end of file
diff --git a/mcs/class/System.Data/System.Data.OleDb.jvm/OleDbError.cs b/mcs/class/System.Data/System.Data.OleDb.jvm/OleDbError.cs
deleted file mode 100644 (file)
index f46680d..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-//
-// System.Data.OleDb.OleDbError
-//
-// Authors:
-//     Konstantin Triger <kostat@mainsoft.com>
-//     Boris Kirzner <borisk@mainsoft.com>
-//     
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-
-namespace System.Data.OleDb
-{
-       using java.sql;
-       using System.Data.Common;
-       using System.Data.ProviderBase;
-
-       [Serializable]
-    public sealed class OleDbError : AbstractDbError
-    {
-
-               internal OleDbError(SQLException e, AbstractDBConnection connection) : base(e, connection) {
-               }
-    
-        public String Message
-        {
-            get
-            {
-                return DbMessage;
-            }
-        }
-    
-        public int NativeError
-        {
-            get
-            {
-                return DbErrorCode;
-            }
-        }
-    
-        public String Source
-        {
-            get
-            {
-                return DbSource;
-            }
-        }
-    
-        public String SQLState
-        {
-            get
-            {
-                return DbSQLState;
-            }
-        }
-
-               public override string ToString () 
-               {
-                       string toStr;
-
-                       toStr = String.Format("OleDbError: {0}. {1}", Message, _e.StackTrace);
-                       return toStr;
-
-               }
-    }
-}
\ No newline at end of file
diff --git a/mcs/class/System.Data/System.Data.OleDb.jvm/OleDbErrorCollection.cs b/mcs/class/System.Data/System.Data.OleDb.jvm/OleDbErrorCollection.cs
deleted file mode 100644 (file)
index f1c96c2..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// System.Data.OleDb.OleDbErrorCollection
-//
-// Authors:
-//     Konstantin Triger <kostat@mainsoft.com>
-//     Boris Kirzner <borisk@mainsoft.com>
-//     
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-
-namespace System.Data.OleDb
-{
-
-
-    using System.Collections;
-       using java.sql;
-       using System.Data.Common;
-       using System.Data.ProviderBase;
-
-       [Serializable]
-    public sealed class OleDbErrorCollection : AbstractDbErrorCollection
-    {
-               internal OleDbErrorCollection(SQLException e, AbstractDBConnection connection) : base(e, connection) {
-               }
-        /**
-         * Gets the error at the specified index.
-         *
-         * @param index of the error
-         * @return Error on specified index
-         */
-        public OleDbError this[int index]
-        {
-            get
-            {
-                return (OleDbError)GetDbItem(index);
-            }
-        }
-
-#if NET_2_0
-               public void CopyTo (OleDbError [] array, int index)
-               {
-                       base.CopyTo (array, index);
-               }
-
-#endif
-
-               protected override AbstractDbError CreateDbError(SQLException e, AbstractDBConnection connection) {
-                       return new OleDbError(e, connection);
-               }
-
-    }
-}
\ No newline at end of file
diff --git a/mcs/class/System.Data/System.Data.OleDb.jvm/OleDbException.cs b/mcs/class/System.Data/System.Data.OleDb.jvm/OleDbException.cs
deleted file mode 100644 (file)
index cf2d729..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-//\r
-// System.Data.OleDb.OleDbException\r
-//\r
-// Authors:\r
-//     Konstantin Triger <kostat@mainsoft.com>\r
-//     Boris Kirzner <borisk@mainsoft.com>\r
-//     \r
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)\r
-//\r
-\r
-//\r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-// \r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-//\r
-\r
-\r
-\r
-namespace System.Data.OleDb\r
-{\r
-\r
-    using java.sql;\r
-       using System.Text;\r
-       using System.Data.Common;\r
-       using System.Data.ProviderBase;\r
-\r
-    /*\r
-    * CURRENT LIMITATIONS\r
-    * 1. Constructor for serialization SqlException(SerializationInfo info, StreamingContext sc) \r
-    *    is not supported.\r
-    * 2. Method "void GetObjectData(...,...)" is not supported (serialization)\r
-    */\r
-#if NET_2_0\r
-       public sealed class OleDbException : AbstractDbException\r
-       {\r
-               internal OleDbException (Exception cause, OleDbConnection connection) : base (cause, connection) { }\r
-\r
-               internal OleDbException (SQLException cause, OleDbConnection connection) : base (cause, connection) { }\r
-\r
-               internal OleDbException (string message, SQLException cause, OleDbConnection connection) : base (message, cause, connection) { }\r
-\r
-               protected override AbstractDbErrorCollection DbErrors {\r
-                       get {\r
-                               return Errors;\r
-                       }\r
-               }\r
-\r
-               public OleDbErrorCollection Errors {\r
-                       get {\r
-                               return new OleDbErrorCollection (_cause, _connection);\r
-                       }\r
-               }\r
-\r
-               public override int ErrorCode {\r
-                       get {\r
-                               return DbErrorCode;\r
-                       }\r
-               }\r
-       }\r
-#else\r
-    public sealed class OleDbException :  System.Runtime.InteropServices.ExternalException\r
-    {\r
-               private class OleDbExceptionImpl : AbstractDbException {\r
-                       internal OleDbExceptionImpl(Exception cause, OleDbConnection connection) : base(cause, connection) {}\r
-\r
-                       internal OleDbExceptionImpl(SQLException cause, OleDbConnection connection) : base(cause, connection) {}\r
-\r
-                       internal OleDbExceptionImpl(string message, SQLException cause, OleDbConnection connection) : base(message, cause, connection) {}\r
-\r
-                       protected override AbstractDbErrorCollection DbErrors {\r
-                               get {\r
-                                       return Errors;\r
-                               }\r
-                       }\r
-\r
-                       public OleDbErrorCollection Errors {\r
-                               get {\r
-                                       return new OleDbErrorCollection(_cause, _connection);\r
-                               }\r
-                       }\r
-\r
-                       public int ErrorCode {\r
-                               get {\r
-                                       return DbErrorCode;\r
-                               }\r
-                       }\r
-               }\r
-               \r
-               OleDbExceptionImpl _impl;\r
-\r
-               internal OleDbException(Exception cause, OleDbConnection connection) : base(null, cause) {\r
-                       _impl = new OleDbExceptionImpl(cause, connection);\r
-               }\r
-\r
-               internal OleDbException(SQLException cause, OleDbConnection connection) : base(null, cause) {\r
-                       _impl = new OleDbExceptionImpl(cause, connection);\r
-               }\r
-\r
-               internal OleDbException(string message, SQLException cause, OleDbConnection connection) : base(null, cause) {\r
-                       _impl = new OleDbExceptionImpl(message, cause, connection);\r
-               }\r
-        /**\r
-         * Gets a collection of one or more SqlError objects that give detailed \r
-         * information about exceptions generated by the SQL Server .NET Data Provider.\r
-         * @return collection of SqlError objects\r
-         */\r
-        public OleDbErrorCollection Errors\r
-        {\r
-            get\r
-            {\r
-                               return (OleDbErrorCollection)_impl.Errors;\r
-            }\r
-        }\r
-\r
-        /**\r
-         * Gets the error code of the error.\r
-         * @return The error code of the error.\r
-         */\r
-        public override int ErrorCode\r
-        {\r
-            get\r
-            {\r
-                return base.HResult;\r
-            }\r
-        }\r
-\r
\r
-        /**\r
-         * Gets the name of the OLE DB provider that generated the error.\r
-         * @return the name of the OLE DB provider that generated the error. \r
-         */\r
-        public override String Source\r
-        {\r
-            get\r
-            {\r
-                return _impl.Source;\r
-            }\r
-        }\r
-\r
-               public override string Message {\r
-                       get {\r
-                               return _impl.Message;\r
-                       }\r
-               }\r
-\r
-    }\r
-#endif\r
-}
\ No newline at end of file
diff --git a/mcs/class/System.Data/System.Data.OleDb.jvm/OleDbParameter.cs b/mcs/class/System.Data/System.Data.OleDb.jvm/OleDbParameter.cs
deleted file mode 100644 (file)
index 71c7403..0000000
+++ /dev/null
@@ -1,256 +0,0 @@
-//
-// System.Data.OleDb.OleDbParameter
-//
-// Authors:
-//     Konstantin Triger <kostat@mainsoft.com>
-//     Boris Kirzner <borisk@mainsoft.com>
-//     
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-
-using System;
-using System.Text;
-using System.Data;
-using System.Data.Common;
-using System.Data.ProviderBase;
-
-using java.sql;
-using java.lang;
-using System.Globalization;
-
-namespace System.Data.OleDb
-{
-    public sealed class OleDbParameter : AbstractDbParameter
-    {
-
-               #region Fields
-
-        private OleDbType _oleDbType = OleDbType.VarWChar;
-               private bool _isOracleRefCursor = false;
-
-               #endregion // Fields
-    
-               #region Constructors
-
-        public OleDbParameter()
-        {
-        }
-    
-        public OleDbParameter(String parameterName, Object value)
-                       : this (parameterName, OleDbType.VarWChar, 0, ParameterDirection.Input,
-                                       false, 0, 0, String.Empty, DataRowVersion.Current, value)
-        {
-                       IsDbTypeSet = false;
-        }
-    
-        public OleDbParameter(String parameterName, OleDbType dbType)
-                       : this (parameterName, dbType, 0, ParameterDirection.Input,
-                                       false, 0, 0, String.Empty, DataRowVersion.Current, null)
-        {
-        }
-    
-        public OleDbParameter(String parameterName, OleDbType dbType, int size)
-                       : this (parameterName, dbType, size, ParameterDirection.Input,
-                                       false, 0, 0, String.Empty, DataRowVersion.Current, null)
-        {
-        }
-    
-        public OleDbParameter(String parameterName, OleDbType dbType, int size,
-            String sourceColumn)
-                       : this (parameterName, dbType, size, ParameterDirection.Input,
-                                       false, 0, 0, sourceColumn, DataRowVersion.Current, null)
-        {
-        }
-    
-        
-        public OleDbParameter(String parameterName, 
-                                                       OleDbType dbType, 
-                                                       int size,
-                                                       ParameterDirection direction, 
-                                                       bool isNullable,
-                                                       byte precision, 
-                                                       byte scale, 
-                                                       String sourceColumn,
-                                                       DataRowVersion sourceVersion, 
-                                                       Object value)
-        {
-            ParameterName = parameterName;
-            OleDbType = dbType;
-            Size = size;
-            Direction = direction;
-            IsNullable = isNullable;
-            Precision = precision;
-            Scale = scale;
-            SourceColumn = sourceColumn;
-            SourceVersion = sourceVersion;
-            Value = value;
-        }
-
-               #endregion // Constructors
-
-               #region Properties
-
-               public override DbType DbType
-        {
-            get { return OleDbConvert.OleDbTypeToDbType(_oleDbType); }           
-                       set { OleDbType = OleDbConvert.DbTypeToOleDbType(value); }
-        }                
-        
-        public OleDbType OleDbType
-        {
-            get { return _oleDbType; }            
-                       set {
-                _oleDbType = value;
-                               IsDbTypeSet = true;
-            }
-        }    
-
-#if NET_2_0
-               public new byte Precision 
-               { 
-                       get { return base.Precision; }
-                       set { base.Precision = value; } 
-               }
-
-               public new byte Scale 
-               { 
-                       get { return base.Scale; }
-                       set { base.Scale = value; } 
-               }
-#endif
-    
-        public new Object Value
-        {
-            get { return base.Value; }
-            set {
-                if (!IsDbTypeSet && (value != null) && (value != DBNull.Value)) {
-                    _oleDbType = OleDbConvert.ValueTypeToOleDbType(value.GetType());
-                               }
-                base.Value = value;
-            }
-        }
-
-               protected internal sealed override bool IsSpecial {
-                       get {
-                               return (Direction == ParameterDirection.Output) && IsOracleRefCursor;
-                       }
-               }
-
-
-               internal bool IsOracleRefCursor
-               {
-                       get { return _isOracleRefCursor; }
-                       set { _isOracleRefCursor = value; }
-               }
-
-               #endregion // Properties
-
-               #region Methods
-
-               protected internal sealed override object ConvertValue(object value)
-               {
-                       // can not convert null or DbNull to other types
-                       if (value == null || value == DBNull.Value) {
-                               return value;
-                       }
-
-                       // FIXME : some other way to do this?
-                       if (OleDbType == OleDbType.Binary) {
-                               return value;
-                       }
-                       // .NET throws an exception to the user.
-                       object convertedValue  = value;
-
-                       // note : if we set user parameter jdbc type inside prepare interbal, the db type is not set
-                       if (value is IConvertible && (IsDbTypeSet || IsJdbcTypeSet)) {
-                               OleDbType oleDbType = (IsDbTypeSet) ? OleDbType : OleDbConvert.JdbcTypeToOleDbType((int)JdbcType);
-                               Type to = OleDbConvert.OleDbTypeToValueType(oleDbType);
-                               if (!(value is DateTime && to == DbTypes.TypeOfTimespan)) //anyway will go by jdbc type
-                                       convertedValue = Convert.ChangeType(value,to);
-                       }
-                       return convertedValue;
-               }
-
-               protected internal sealed override void SetParameterName(ResultSet res)
-               {
-                       ParameterName = res.getString("COLUMN_NAME");
-
-                       if (ParameterName.StartsWith("@")) {
-                               ParameterName = ParameterName.Remove(0,1);
-                       }
-               }
-
-               protected internal sealed override void SetParameterDbType(ResultSet res)
-               {
-                       int jdbcType = res.getInt("DATA_TYPE");                 
-                       // FIXME : is that correct?
-                       if (jdbcType == Types.OTHER) {
-                               string typeName = res.getString("TYPE_NAME");
-                               if (String.Compare ("BLOB", typeName, true, CultureInfo.InvariantCulture) == 0) {
-                                       jdbcType = Types.BLOB;
-                               }
-                               else if (String.Compare ("CLOB", typeName, true, CultureInfo.InvariantCulture) == 0) {
-                                       jdbcType = Types.CLOB;
-                               }
-                               else if (String.Compare ("FLOAT", typeName, true, CultureInfo.InvariantCulture) == 0) {
-                                       jdbcType = Types.FLOAT;
-                               }
-                               else if (String.Compare ("NVARCHAR2", typeName, true, CultureInfo.InvariantCulture) == 0) {
-                                       jdbcType = Types.VARCHAR;
-                               }
-                               else if (String.Compare ("NCHAR", typeName, true, CultureInfo.InvariantCulture) == 0) {
-                                       jdbcType = Types.VARCHAR;
-                               }
-                       }
-                       OleDbType = OleDbConvert.JdbcTypeToOleDbType(jdbcType);
-                       JdbcType = jdbcType;
-               }
-
-#if NET_2_0
-               public void ResetOleDbType ()
-               {
-                       IsDbTypeSet = false;
-               }
-
-               public override void ResetDbType ()
-               {
-                       ResetOleDbType ();
-               }
-#endif
-
-               protected internal sealed override void SetSpecialFeatures(ResultSet res)
-               {
-                       IsOracleRefCursor = (res.getString("TYPE_NAME") == "REF CURSOR");
-               }
-
-               protected internal sealed override int JdbcTypeFromProviderType()
-               {
-                       return OleDbConvert.OleDbTypeToJdbcType(OleDbType);
-               }
-
-               #endregion // Methods
-    
-    }
-}
diff --git a/mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractDBCommand.cs b/mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractDBCommand.cs
deleted file mode 100644 (file)
index 855d9d2..0000000
+++ /dev/null
@@ -1,1273 +0,0 @@
-//\r
-// System.Data.ProviderBase.AbstractDbCommand\r
-//\r
-// Authors:\r
-//     Konstantin Triger <kostat@mainsoft.com>\r
-//     Boris Kirzner <borisk@mainsoft.com>\r
-//     \r
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)\r
-//\r
-\r
-//\r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-// \r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-//\r
-\r
-\r
-using System;\r
-using System.Text;\r
-using System.Text.RegularExpressions;\r
-using System.Collections;\r
-using System.Data;\r
-using System.Data.Common;\r
-\r
-using java.sql;\r
-using java.io;\r
-\r
-#if !USE_DOTNET_REGEXP\r
-using java.util.regex;\r
-#endif\r
-\r
-namespace System.Data.ProviderBase\r
-{\r
-       public abstract class AbstractDbCommand : DbCommand, ICloneable\r
-       {\r
-               #region ProcedureColumnCache\r
-\r
-               internal sealed class ProcedureColumnCache : AbstractDbMetaDataCache\r
-               {\r
-                       internal ArrayList GetProcedureColumns(AbstractDBConnection connection, String commandText,AbstractDbCommand command) \r
-                       {\r
-                               string connectionCatalog = connection.JdbcConnection.getCatalog();\r
-                               string key = String.Concat(connection.ConnectionString, connectionCatalog, commandText);\r
-                               System.Collections.Hashtable cache = Cache;\r
-\r
-                               ArrayList col = cache[key] as ArrayList;\r
-\r
-                               if (null != col) {\r
-                                       return col;\r
-                               }\r
-       \r
-                               col = connection.GetProcedureColumns(commandText,command);\r
-                               if (col != null)\r
-                                       cache[key] = col;\r
-                               return col;                             \r
-                       }\r
-               }\r
-\r
-               #endregion\r
-\r
-               #region SqlStatementsHelper\r
-\r
-               internal sealed class SqlStatementsHelper\r
-               {\r
-                       #region Fields\r
-#if USE_DOTNET_REGEXP                  \r
-                       internal static readonly Regex NamedParameterStoredProcedureRegExp = new Regex(@"^\s*{?\s*((?<RETVAL>@\w+)\s*=\s*)?call\s+(?<PROCNAME>(((\[[^\]]*\])|([^\.\(])*)\s*\.\s*){0,2}(\[[^\]]*\]|((\s*[^\.\(\)\{\}\s])+)))\s*(\(\s*(?<USERPARAM>((""([^""]|(""""))*"")|('([^']|(''))*')|[^,])*)?\s*(,\s*(?<USERPARAM>((""([^""]|(""""))*"")|('([^']|(''))*')|[^,])*)\s*)*\))?\s*}?\s*$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);\r
-                       internal static readonly Regex SimpleParameterStoredProcedureRegExp = new Regex(@"^\s*{?\s*((?<RETVAL>\?)\s*=\s*)?call\s+(?<PROCNAME>(((\[[^\]]*\])|([^\.\(])*)\s*\.\s*){0,2}(\[[^\]]*\]|((\s*[^\.\(\)\{\}\s])+)))\s*(\(\s*(?<USERPARAM>((""([^""]|(""""))*"")|('([^']|(''))*')|[^,])*)?\s*(,\s*(?<USERPARAM>((""([^""]|(""""))*"")|('([^']|(''))*')|[^,])*)\s*)*\))?\s*}?\s*$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);\r
-                       internal static readonly Regex ForBrowseStatementReqExp = new Regex(@"\s+FOR\s+BROWSE\s*$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);\r
-#else\r
-                       internal static readonly Pattern NamedParameterStoredProcedureRegExp = Pattern.compile(@"^\s*\{?\s*(?:(@\w+)\s*=\s*)?call\s+((?:(?:(?:\[[^\]]*\])|(?:[^\.\(\)\{\}\[\]])*)\s*\.\s*){0,2}(?:\[[^\]]*\]|(?:(?:\s*[^\.\(\)\{\}\[\]])+)))\s*(?:\((.*)\))?\s*\}?\s*$", Pattern.CASE_INSENSITIVE);\r
-                       internal static readonly Pattern SimpleParameterStoredProcedureRegExp = Pattern.compile(@"^\s*\{?\s*(?:(\?)\s*=\s*)?call\s+((?:(?:(?:\[[^\]]*\])|(?:[^\.\(\)\{\}\[\]])*)\s*\.\s*){0,2}(?:\[[^\]]*\]|(?:(?:\s*[^\.\(\)\{\}\[\]])+)))\s*(?:\((.*)\))?\s*\}?\s*$", Pattern.CASE_INSENSITIVE);\r
-                       internal static readonly Pattern ForBrowseStatementReqExp = Pattern.compile(@"\s+FOR\s+BROWSE\s*$", Pattern.CASE_INSENSITIVE);\r
-#endif\r
-\r
-                       internal static readonly SimpleRegex NamedParameterRegExp = new SqlParamsRegex();\r
-                       internal static readonly SimpleRegex SimpleParameterRegExp = new OleDbParamsRegex();\r
-\r
-                       internal static readonly SimpleRegex CompoundStatementSplitterReqExp = new CharacterSplitterRegex(';');\r
-                       internal static readonly SimpleRegex ProcedureParameterSplitterReqExp = new CharacterSplitterRegex(',');\r
-\r
-                       #endregion // Fields\r
-               }\r
-\r
-               #endregion // SqlStatementsHelper\r
-\r
-               #region Fields\r
-\r
-               string _commandText;\r
-               int _commandTimeout;\r
-               CommandType _commandType;\r
-               bool _designTimeVisible;\r
-               UpdateRowSource _updatedRowSource;\r
-\r
-               private DbParameterCollection _parameters;\r
-               private java.sql.Statement _statement;\r
-               private AbstractDBConnection _connection;\r
-               private AbstractTransaction _transaction;\r
-               private bool _isCommandPrepared;\r
-               private CommandBehavior _behavior;\r
-               private ArrayList _internalParameters;\r
-               string _javaCommandText;\r
-               private int _recordsAffected;\r
-               private ResultSet _currentResultSet;\r
-               private DbDataReader _currentReader;\r
-               private bool _nullParametersInPrepare;\r
-               private bool _hasResultSet;\r
-               private bool _explicitPrepare;\r
-\r
-               static ProcedureColumnCache _procedureColumnCache = new ProcedureColumnCache();\r
-\r
-               #endregion // Fields\r
-\r
-               #region Constructors\r
-\r
-               public AbstractDbCommand(\r
-                       String cmdText,\r
-                       AbstractDBConnection connection,\r
-                       AbstractTransaction transaction)\r
-               {\r
-                       _connection = connection;\r
-                       _commandText = cmdText;\r
-                       _transaction = transaction;\r
-\r
-                       _commandTimeout = 30;\r
-                       _commandType = CommandType.Text;\r
-                       _designTimeVisible = true;\r
-                       _updatedRowSource = UpdateRowSource.Both;\r
-\r
-                       _isCommandPrepared = false;\r
-                       _explicitPrepare = false;\r
-                       _recordsAffected = -1;\r
-                       if (connection != null) {\r
-                               connection.AddReference(this);\r
-                       }\r
-               }\r
-\r
-               #endregion // Constructors\r
-\r
-               #region Properties\r
-\r
-               public override int CommandTimeout {\r
-                       get { return _commandTimeout; }\r
-                       set { _commandTimeout = value; }\r
-               }\r
-\r
-               public override CommandType CommandType {\r
-                       get { return _commandType; }\r
-                       set { _commandType = value; }\r
-               }\r
-\r
-               public override bool DesignTimeVisible {\r
-                       get { return _designTimeVisible; }\r
-                       set { _designTimeVisible = value; }\r
-               }       \r
-\r
-               public override UpdateRowSource UpdatedRowSource {\r
-                       get { return _updatedRowSource; }\r
-                       set { _updatedRowSource = value; }\r
-               }\r
-\r
-               protected override DbParameterCollection DbParameterCollection\r
-               {\r
-                       get {\r
-                               if (_parameters == null) {\r
-                                       _parameters = CreateParameterCollection(this);\r
-                               }\r
-                               return _parameters; \r
-                       }\r
-               }\r
-\r
-               protected override DbConnection DbConnection\r
-               {\r
-                       get { return (DbConnection)_connection; }\r
-                       set {\r
-                               if (value == _connection) {\r
-                                       return;\r
-                               }\r
-\r
-                               if (_currentReader != null && !_currentReader.IsClosed) {\r
-                                       throw ExceptionHelper.ConnectionIsBusy(this.GetType().Name,((AbstractDBConnection)_connection).InternalState);\r
-                               }\r
-                               if (_connection != null) {\r
-                                       _connection.RemoveReference(this);\r
-                               }\r
-                               _connection = (AbstractDBConnection) value;\r
-                               if (_connection != null) {\r
-                                       _connection.AddReference(this);\r
-                               }\r
-                       }\r
-               }\r
-\r
-               protected override DbTransaction DbTransaction\r
-               {\r
-                       get { return _transaction != null ? _transaction.ActiveTransaction : null; }\r
-                       set { _transaction = (AbstractTransaction)value; }\r
-               }\r
-\r
-               public override string CommandText\r
-               {\r
-                       get { return _commandText; }\r
-                       set { \r
-                               if (CommandText == null || String.Compare(CommandText, value,  true) != 0) {\r
-                                       _commandText = value;\r
-                                       _isCommandPrepared = false;\r
-                                       _explicitPrepare = false;\r
-                               }\r
-                       }\r
-               }\r
-\r
-               protected virtual string InternalCommandText {\r
-                       get { return CommandText; }\r
-                       //set { CommandText = value; }\r
-               }\r
-\r
-               internal CommandBehavior Behavior\r
-               {\r
-                       get { return _behavior; }\r
-                       set { _behavior = value; }\r
-               }\r
-\r
-               bool IsCommandPrepared\r
-               {\r
-                       get { return _isCommandPrepared; }\r
-                       set { _isCommandPrepared = value; }\r
-               }\r
-\r
-               bool NullParametersInPrepare\r
-               {\r
-                       get { return _nullParametersInPrepare; }\r
-                       set { _nullParametersInPrepare = value; }\r
-               }\r
-\r
-               protected ArrayList InternalParameters\r
-               {\r
-                       get {\r
-                               if (_internalParameters == null) {\r
-                                       _internalParameters = new ArrayList();\r
-                               }\r
-                               return _internalParameters;\r
-                       }\r
-               }\r
-\r
-               // Number of records affected by execution of batch statement\r
-               // -1 for SELECT statements.\r
-               internal int RecordsAffected\r
-               {\r
-                       get {\r
-                               return _recordsAffected;\r
-                       }\r
-               }\r
-\r
-               // AbstractDbCommand acts as IEnumerator over JDBC statement\r
-               // AbstractDbCommand.CurrentResultSet corresponds to IEnumerator.Current\r
-               protected internal virtual ResultSet CurrentResultSet\r
-               {\r
-                       get { \r
-                               try {\r
-                                       if (_currentResultSet == null && _hasResultSet) {\r
-                                               _currentResultSet = _statement.getResultSet(); \r
-                                       }\r
-                                       return _currentResultSet;\r
-                               }\r
-                               catch(SQLException e) {\r
-                                       throw new Exception(e.Message, e);\r
-                               }\r
-                       }\r
-               }\r
-\r
-               protected internal java.sql.Statement Statement\r
-               {\r
-                       get { return _statement; }\r
-               }\r
-#if USE_DOTNET_REGEX\r
-               protected virtual Regex StoredProcedureRegExp\r
-#else\r
-               protected virtual Pattern StoredProcedureRegExp\r
-#endif\r
-               {\r
-                       get { return SqlStatementsHelper.SimpleParameterStoredProcedureRegExp; }\r
-               }\r
-\r
-               protected virtual SimpleRegex ParameterRegExp\r
-               {\r
-                       get { return SqlStatementsHelper.SimpleParameterRegExp; }\r
-               }\r
-\r
-               #endregion // Properties\r
-\r
-               #region Methods\r
-\r
-               protected abstract DbParameter CreateParameterInternal();\r
-\r
-               protected abstract void CheckParameters();\r
-\r
-               protected abstract DbDataReader CreateReader();\r
-\r
-               protected abstract DbParameterCollection CreateParameterCollection(AbstractDbCommand parent);\r
-\r
-               protected internal abstract SystemException CreateException(SQLException e);\r
-\r
-               public override int ExecuteNonQuery ()\r
-               {\r
-                       IDataReader reader = null;\r
-                       try {\r
-                               reader = ExecuteReader ();\r
-                       }\r
-                       finally {\r
-                               if (reader != null)\r
-                                       reader.Close ();                                \r
-                       }\r
-                       return reader.RecordsAffected;\r
-               }\r
-\r
-               public override object ExecuteScalar ()\r
-               {\r
-                       IDataReader reader = ExecuteReader(CommandBehavior.SequentialAccess);\r
-                       \r
-                       try {\r
-                               do {\r
-                                       if (reader.FieldCount > 0 && reader.Read ())\r
-                                               return reader.GetValue (0);                     \r
-                               }\r
-                               while (reader.NextResult ());\r
-                               return null;\r
-                       } finally {\r
-                               reader.Close();\r
-                       }\r
-               }\r
-\r
-               public virtual void ResetCommandTimeout ()\r
-               {\r
-                       _commandTimeout = 30;\r
-               }\r
-\r
-               public override void Cancel()\r
-               {\r
-                       try {\r
-                               if (_statement != null)\r
-                                       _statement.cancel();\r
-                       }\r
-                       catch {\r
-                               // MSDN says : "If there is nothing to cancel, nothing happens. \r
-                               // However, if there is a command in process, and the attempt to cancel fails, \r
-                               // no exception is generated."\r
-                       }\r
-               }\r
-               \r
-               protected virtual bool SkipParameter(DbParameter parameter)\r
-               {\r
-                       return false;\r
-               }\r
-\r
-               protected sealed override DbParameter CreateDbParameter()\r
-               {\r
-                       return CreateParameterInternal();\r
-               }\r
-\r
-               internal ArrayList DeriveParameters(string procedureName, bool throwIfNotExist)\r
-               {\r
-                       try {\r
-                               ArrayList col = _procedureColumnCache.GetProcedureColumns((AbstractDBConnection)Connection, procedureName, this);\r
-                               if (col == null) {\r
-                                       if (throwIfNotExist)\r
-                                               throw ExceptionHelper.NoStoredProcedureExists(procedureName);\r
-                                       col = new ArrayList();\r
-                               }\r
-\r
-                               return col;\r
-                       }\r
-                       catch(SQLException e) {\r
-                               throw CreateException(e);\r
-                       }\r
-               }\r
-\r
-               string CreateTableDirectCommandText(string tableNames) {\r
-                       string forBrowse = String.Empty;\r
-                       if ((Behavior & CommandBehavior.KeyInfo) != 0) {\r
-                               AbstractDBConnection connection = (AbstractDBConnection)Connection;\r
-                               if (connection != null) {\r
-                                       string dbname = connection.JdbcConnection.getMetaData().getDatabaseProductName();\r
-                                       if (dbname == "Microsoft SQL Server")   //must add "FOR BROWSE" for selects\r
-                                               forBrowse = " FOR BROWSE";\r
-                               }\r
-                       }\r
-\r
-                       string[] names = tableNames.Split(',');\r
-                       StringBuilder sb = new StringBuilder();\r
-\r
-                       for(int i = 0; i < names.Length; i++) {\r
-                               sb.Append("SELECT * FROM ");\r
-                               sb.Append(names[i]);\r
-                               sb.Append(forBrowse);\r
-                               sb.Append(';');\r
-                       }\r
-                               \r
-                       if(names.Length <= 1) {\r
-                               sb.Remove(sb.Length - 1,1);\r
-                       }\r
-                       return sb.ToString();\r
-               }\r
-\r
-               private string PrepareCommandTextAndParameters()\r
-               {\r
-                       NullParametersInPrepare = false;\r
-                       switch (CommandType) {\r
-                               case CommandType.TableDirect :\r
-                                       return CreateTableDirectCommandText(CommandText);\r
-                               case CommandType.StoredProcedure :\r
-                                       return CreateStoredProcedureCommandTextSimple (InternalCommandText, Parameters, DeriveParameters (InternalCommandText, false));\r
-                               case CommandType.Text :\r
-\r
-                                       int userParametersPosition = 0;\r
-                                       int charsConsumed = 0;\r
-                                       StringBuilder sb = new StringBuilder(CommandText.Length);\r
-\r
-                                       for (SimpleMatch match = SqlStatementsHelper.CompoundStatementSplitterReqExp.Match(CommandText);\r
-                                               match.Success;\r
-                                               match = match.NextMatch()) {\r
-\r
-                                               int length = match.Length;\r
-\r
-                                               if (length == 0)\r
-                                                       continue;\r
-\r
-                                               int start = match.Index;\r
-                                               string value = match.Value;\r
-\r
-                                               sb.Append(CommandText, charsConsumed, start-charsConsumed);\r
-                                               charsConsumed = start + length;\r
-\r
-#if USE_DOTNET_REGEX\r
-                                               Match storedProcMatch = StoredProcedureRegExp.Match(value);\r
-                                               // count parameters for all kinds of simple statements \r
-                                               userParametersPosition +=\r
-                                                       (storedProcMatch.Success) ?\r
-                                                       // statement is stored procedure call\r
-                                                       CreateStoredProcedureCommandText(sb, value, storedProcMatch, Parameters, userParametersPosition) :\r
-                                                       // statement is a simple SQL query                              \r
-                                                       PrepareSimpleQuery(sb, value, Parameters, userParametersPosition);      \r
-#else\r
-                                               Matcher storedProcMatch = StoredProcedureRegExp.matcher((java.lang.CharSequence)(object)value);\r
-                                               userParametersPosition +=\r
-                                                       (storedProcMatch.find()) ?\r
-                                                       // statement is stored procedure call\r
-                                                       CreateStoredProcedureCommandText(sb, value, storedProcMatch, Parameters, userParametersPosition) :\r
-                                                       // statement is a simple SQL query                              \r
-                                                       PrepareSimpleQuery(sb, value, Parameters, userParametersPosition);\r
-#endif\r
-                                       }\r
-\r
-                                       sb.Append(CommandText, charsConsumed, CommandText.Length-charsConsumed);\r
-\r
-                                       return sb.ToString();\r
-                       }\r
-                       return null;\r
-               }\r
-\r
-               string CreateStoredProcedureCommandTextSimple(string procedureName, IDataParameterCollection userParams, IList derivedParams) {\r
-                       StringBuilder sb = new StringBuilder();\r
-\r
-                       int curUserPos = 0;\r
-                       int curDerivedPos = 0;\r
-                       bool addParas = true;\r
-                       string trimedProcedureName = (procedureName != null) ? procedureName.TrimEnd() : String.Empty;\r
-                       if (trimedProcedureName.Length > 0 && trimedProcedureName[trimedProcedureName.Length-1] == ')')\r
-                               addParas = false;\r
-                       \r
-                               AbstractDbParameter derivedParam = (derivedParams.Count > 0) ? (AbstractDbParameter)derivedParams[curDerivedPos] : null;\r
-                               if (derivedParam != null) {\r
-                                       if (derivedParam.Direction == ParameterDirection.ReturnValue)\r
-                                               curDerivedPos++;\r
-                                       else\r
-                                               derivedParam = null; //play as if there is no retval parameter\r
-                               }\r
-                               AbstractDbParameter returnValueParameter = GetReturnParameter (userParams);\r
-                               if (returnValueParameter != null) {\r
-                                       curUserPos++;\r
-                                       InternalParameters.Add(returnValueParameter);\r
-                                       sb.Append("{? = call ");\r
-\r
-                                       if (derivedParam != null && !returnValueParameter.IsDbTypeSet) {\r
-                                               returnValueParameter.JdbcType = derivedParam.JdbcType;\r
-                                       }\r
-                               }\r
-                               else {\r
-                                       sb.Append("{call ");\r
-                               }\r
-\r
-                       sb.Append(procedureName);\r
-                       if (addParas)\r
-                               sb.Append('(');\r
-\r
-                       bool needComma = false;\r
-                       for (int i = curDerivedPos; i < derivedParams.Count; i++) {\r
-                               AbstractDbParameter derivedParameter = (AbstractDbParameter)derivedParams[curDerivedPos++];\r
-                               \r
-                               bool addParam = false;\r
-\r
-                               if (derivedParameter.IsSpecial) {\r
-                                       // derived parameter is special - never appears in user parameters or user values\r
-                                       InternalParameters.Add((AbstractDbParameter)derivedParameter.Clone());\r
-                                       addParam = true;\r
-                               }\r
-                               else {\r
-                                       AbstractDbParameter userParameter = GetUserParameter(derivedParameter.Placeholder, userParams, curUserPos);\r
-                                       if (userParameter != null) {\r
-                                               curUserPos++;\r
-                                               InternalParameters.Add(userParameter);\r
-                                               addParam = true;\r
-\r
-                                               if (derivedParameter != null && !userParameter.IsDbTypeSet) {\r
-                                                       userParameter.JdbcType = derivedParameter.JdbcType;\r
-                                               }\r
-                                       }\r
-                               }\r
-\r
-                               if (addParam) {\r
-                                       if (needComma)\r
-                                               sb.Append(',');\r
-                                       else\r
-                                               needComma = true;\r
-\r
-                                       sb.Append('?');\r
-                               }\r
-                       }\r
-\r
-                       for (int i = curUserPos; i < userParams.Count; i++) {\r
-                               if (needComma)\r
-                                       sb.Append(',');\r
-                               else\r
-                                       needComma = true;\r
-\r
-                               AbstractDbParameter userParameter = (AbstractDbParameter)userParams[curUserPos++];\r
-                               InternalParameters.Add(userParameter);\r
-\r
-                               sb.Append('?');\r
-                       }\r
-\r
-                       if (addParas)\r
-                               sb.Append(')');\r
-                       sb.Append('}');\r
-                       return sb.ToString();\r
-               }\r
-\r
-               /// <summary>\r
-               /// We suppose that user parameters are in the same order as devived parameters except the special cases\r
-               /// (return value, oracle ref cursors etc.)\r
-               /// </summary>\r
-               //protected virtual string CreateStoredProcedureCommandText(string procedureName, IList userParametersList, int userParametersListStart/*, int userParametersListCount*/, string[] userValuesList, ArrayList derivedParametersList)\r
-#if USE_DOTNET_REGEX\r
-               int CreateStoredProcedureCommandText(StringBuilder sb, string sql, Match match, IDataParameterCollection userParams, int userParamsStartPosition)\r
-#else\r
-               int CreateStoredProcedureCommandText(StringBuilder sb, string sql, Matcher match, IDataParameterCollection userParams, int userParamsStartPosition)\r
-#endif\r
-               {\r
-                       int curUserPos = userParamsStartPosition;\r
-#if USE_DOTNET_REGEX\r
-                       Group procNameGroup = null;\r
-\r
-                       for (Match procNameMatch = match; procNameMatch.Success; procNameMatch = procNameMatch.NextMatch()){\r
-                               procNameGroup = match.Groups["PROCNAME"];\r
-                               if (!procNameGroup.Success) {\r
-                                       continue;\r
-                               }\r
-                       }\r
-\r
-                       if (procNameGroup == null || !procNameGroup.Success)\r
-                               throw new ArgumentException("Not a stored procedure call: '{0}'", sql);\r
-\r
-                       ArrayList derivedParameters = DeriveParameters(procNameGroup.Value, false);\r
-#else\r
-                       ArrayList derivedParameters = DeriveParameters(match.group(2).Trim(), false);\r
-#endif\r
-                       int curDerivedPos = 0;\r
-\r
-                       AbstractDbParameter retValderivedParameter = curDerivedPos < derivedParameters.Count ?\r
-                               (AbstractDbParameter)derivedParameters[curDerivedPos] : null;\r
-                       if (retValderivedParameter != null && retValderivedParameter.Direction == ParameterDirection.ReturnValue)\r
-                               curDerivedPos++;\r
-\r
-                       int queryCurrentPosition = 0;\r
-                       \r
-#if USE_DOTNET_REGEX\r
-                       for (Match retValMatch = match; retValMatch.Success; retValMatch = retValMatch.NextMatch()){\r
-                               Group retval = retValMatch.Groups["RETVAL"];\r
-                               if (!retval.Success) {\r
-                                       continue;\r
-                               }\r
-\r
-                               int retvalIndex = retval.Index;\r
-                               string retvalValue = retval.Value;\r
-                               int retvalLength = retval.Length;\r
-#else\r
-                       int retvalIndex = match.start(1);\r
-                       for (;retvalIndex >= 0;) {\r
-                               string retvalValue = match.group(1);\r
-                               int retvalLength = retvalValue.Length;\r
-#endif\r
-\r
-                               sb.Append(sql, queryCurrentPosition, retvalIndex);\r
-                               AbstractDbParameter userParameter = GetUserParameter(retvalValue, userParams, curUserPos);\r
-                               if (userParameter != null) {\r
-                                       sb.Append('?');\r
-                                       InternalParameters.Add(userParameter);\r
-\r
-                                       if (retValderivedParameter != null && !userParameter.IsDbTypeSet) {\r
-                                               userParameter.JdbcType = retValderivedParameter.JdbcType;\r
-                                       }\r
-\r
-                                       curUserPos++;\r
-                               }\r
-                               else {\r
-                                       sb.Append(retvalValue);\r
-                               }\r
-\r
-                               queryCurrentPosition = (retvalIndex + retvalLength);\r
-\r
-                               break;\r
-                       }\r
-\r
-#if USE_DOTNET_REGEX\r
-                       sb.Append(sql, queryCurrentPosition, procNameGroup.Index + procNameGroup.Length - queryCurrentPosition);\r
-                       queryCurrentPosition = procNameGroup.Index + procNameGroup.Length;\r
-#else\r
-                       sb.Append(sql, queryCurrentPosition, match.end(2) - queryCurrentPosition);\r
-                       queryCurrentPosition = match.end(2);\r
-#endif\r
-\r
-                       bool hasUserParams = false;\r
-\r
-#if USE_DOTNET_REGEX\r
-                       must rewrite the regex to not parse params to have single code with java regex\r
-#else\r
-                       int paramsStart = match.start(3);\r
-                       if (paramsStart >= 0) {\r
-#endif\r
-\r
-                               hasUserParams = true;\r
-                               sb.Append(sql,queryCurrentPosition,paramsStart - queryCurrentPosition);\r
-                               queryCurrentPosition = paramsStart;\r
-\r
-                               for (SimpleMatch m = SqlStatementsHelper.ProcedureParameterSplitterReqExp.Match(match.group(3));\r
-                                       m.Success;m = m.NextMatch()) {\r
-\r
-                                       SimpleCapture parameterCapture = m;\r
-                                       sb.Append(sql,queryCurrentPosition,paramsStart + parameterCapture.Index - queryCurrentPosition);\r
-\r
-                                       // advance in query\r
-                                       queryCurrentPosition = paramsStart + parameterCapture.Index + parameterCapture.Length;\r
-\r
-                                       AbstractDbParameter derivedParameter = curDerivedPos < derivedParameters.Count ?\r
-                                               (AbstractDbParameter)derivedParameters[curDerivedPos++] : null;\r
-                                       \r
-                                       //check for special params\r
-                                       while (derivedParameter != null && derivedParameter.IsSpecial) {\r
-                                               // derived parameter is special - never appears in user parameters or user values\r
-                                               InternalParameters.Add((AbstractDbParameter)derivedParameter.Clone());\r
-                                               sb.Append('?');\r
-                                               sb.Append(',');\r
-\r
-                                               derivedParameter = curDerivedPos < derivedParameters.Count ?\r
-                                                       (AbstractDbParameter)derivedParameters[curDerivedPos++] : null;\r
-                                       }\r
-\r
-                                       AbstractDbParameter userParameter = GetUserParameter(parameterCapture.Value.Trim(), userParams, curUserPos);\r
-\r
-                                       if (userParameter != null) {\r
-                                               sb.Append('?');\r
-                                               InternalParameters.Add(userParameter);\r
-                                               if (derivedParameter != null && !userParameter.IsDbTypeSet) {\r
-                                                       userParameter.JdbcType = derivedParameter.JdbcType;\r
-                                               }\r
-                                               // advance in user parameters\r
-                                               curUserPos++;                           \r
-                                       }\r
-                                       else {\r
-                                               sb.Append(parameterCapture.Value);\r
-                                       }                                                                       \r
-                               }                                       \r
-                       }\r
-\r
-                       bool addedSpecialParams = false;\r
-\r
-                       for (int i = curDerivedPos; i < derivedParameters.Count;) {\r
-                               AbstractDbParameter derivedParameter = (AbstractDbParameter)derivedParameters[i++];\r
-                               if (derivedParameter.IsSpecial) {\r
-                                       // derived parameter is special - never appears in user parameters or user values\r
-                                       if (!hasUserParams && !addedSpecialParams) {\r
-                                               addedSpecialParams = true;\r
-                                               curDerivedPos++;\r
-                                               sb.Append('(');\r
-                                       }\r
-\r
-                                       for (;curDerivedPos < i;curDerivedPos++)\r
-                                               sb.Append(',');\r
-\r
-                                       InternalParameters.Add((AbstractDbParameter)derivedParameter.Clone());\r
-                                       sb.Append('?');\r
-                               }\r
-                       }\r
-\r
-                       if (!hasUserParams && addedSpecialParams)\r
-                               sb.Append(')');\r
-\r
-                       sb.Append(sql,queryCurrentPosition,sql.Length - queryCurrentPosition);\r
-                       return curUserPos - userParamsStartPosition;\r
-               }\r
-\r
-               protected virtual AbstractDbParameter GetUserParameter(string parameterName, IList userParametersList, int userParametersListPosition)\r
-               {\r
-                       if (userParametersListPosition < userParametersList.Count) {\r
-                               AbstractDbParameter param = (AbstractDbParameter)userParametersList[userParametersListPosition];\r
-                               if (param.Placeholder == parameterName)\r
-                                       return param;\r
-                       }\r
-                       return null;\r
-               }\r
-\r
-               protected virtual AbstractDbParameter GetReturnParameter (IList userParametersList)\r
-               {\r
-                       AbstractDbParameter param = GetUserParameter ("?", userParametersList, 0); \r
-\r
-                       if (param != null && param.Direction == ParameterDirection.ReturnValue)\r
-                               return param;\r
-\r
-                       return null;\r
-               }\r
-\r
-               int PrepareSimpleQuery(StringBuilder sb, string query, IList userParametersList, int userParametersListStart)\r
-               {\r
-                       int queryCurrentPosition = 0;\r
-                       int userParametersListPosition = userParametersListStart;\r
-\r
-                       if (userParametersList.Count > 0) {\r
-                               for (SimpleMatch m = ParameterRegExp.Match(query);\r
-                                       m.Success;m = m.NextMatch()) {\r
-\r
-                                       SimpleCapture parameterCapture = m;\r
-                                       sb.Append(query,queryCurrentPosition,parameterCapture.Index - queryCurrentPosition);\r
-\r
-                                       // advance in query\r
-                                       queryCurrentPosition = parameterCapture.Index + parameterCapture.Length;        \r
-\r
-                                       AbstractDbParameter userParameter = GetUserParameter(parameterCapture.Value, userParametersList, userParametersListPosition);\r
-\r
-                                       if (userParameter != null) {\r
-                                               if (IsNullParameter(userParameter)) {\r
-                                                       sb.Append("null");\r
-                                                       NullParametersInPrepare = true;\r
-                                               }\r
-                                               else {\r
-                                                       sb.Append('?');\r
-                                                       InternalParameters.Add(userParameter);  \r
-                                               }       \r
-                                               // advance in user parameters\r
-                                               userParametersListPosition++;                           \r
-                                       }\r
-                                       else {\r
-                                               sb.Append(parameterCapture.Value);\r
-                                       }\r
-                               }\r
-                       }\r
-\r
-                       sb.Append(query,queryCurrentPosition,query.Length - queryCurrentPosition);\r
-                       int userParamsConsumed = userParametersListPosition - userParametersListStart;\r
-\r
-                       if ((Behavior & CommandBehavior.KeyInfo) == 0)\r
-                               return userParamsConsumed;\r
-\r
-                       AbstractDBConnection connection = (AbstractDBConnection)Connection;\r
-                       if (connection == null)\r
-                               return userParamsConsumed;\r
-\r
-                       string dbname = connection.JdbcConnection.getMetaData().getDatabaseProductName();\r
-                       if (dbname == "Microsoft SQL Server") { //must add "FOR BROWSE" for selects\r
-#if USE_DOTNET_REGEX\r
-                                       if (!SqlStatementsHelper.ForBrowseStatementReqExp.IsMatch(query))\r
-                                               sb.Append(" FOR BROWSE");\r
-#else\r
-                                       if (!SqlStatementsHelper.ForBrowseStatementReqExp.matcher ((java.lang.CharSequence)(object)query).find ())\r
-                                               sb.Append (" FOR BROWSE");\r
-#endif\r
-                       }\r
-\r
-                       return userParamsConsumed;\r
-               }\r
-\r
-               protected virtual bool IsNullParameter(AbstractDbParameter parameter)\r
-               {\r
-                       return ((parameter.Value == null || parameter.Value == DBNull.Value) && !parameter.IsDbTypeSet);\r
-               }\r
-\r
-               protected virtual void PrepareInternalParameters()\r
-               {\r
-                       InternalParameters.Clear();\r
-               }\r
-        \r
-               protected override DbDataReader ExecuteDbDataReader(CommandBehavior behavior)\r
-               {\r
-                       AbstractDBConnection connection = (AbstractDBConnection)Connection;\r
-                       if (connection == null) {\r
-                               throw ExceptionHelper.ConnectionNotInitialized("ExecuteReader");\r
-                       }\r
-\r
-                       connection.IsExecuting = true;\r
-\r
-                       try {\r
-                               IDbTransaction transaction = Transaction;\r
-                               if ((transaction != null && transaction.Connection != connection) ||\r
-                                       (transaction == null && !connection.JdbcConnection.getAutoCommit ())) {\r
-                                       throw ExceptionHelper.TransactionNotInitialized ();\r
-                               }\r
-\r
-                               Behavior = behavior;\r
-\r
-                               PrepareInternalParameters();                    \r
-                               PrepareInternal();\r
-\r
-                               // For SchemaOnly there is no need for statement execution\r
-                               if (Behavior != CommandBehavior.SchemaOnly) {\r
-                                       _recordsAffected = -1;\r
-\r
-                                       // FIXME: this causes SP in MS Sql Server to create no mor than one row.\r
-                                       if ((Behavior & CommandBehavior.SingleRow) != 0) {\r
-                                               _statement.setMaxRows (1);\r
-                                       }\r
-                               \r
-                                       if(_statement is PreparedStatement) {\r
-                                               BindParameters(InternalParameters);\r
-                                               _hasResultSet = ((PreparedStatement)_statement).execute();\r
-                                       }\r
-                                       else {\r
-                                               _hasResultSet =_statement.execute(_javaCommandText);                                    \r
-                                       }\r
-               \r
-                                       if (!_hasResultSet) {\r
-                                               int updateCount = _statement.getUpdateCount();\r
-                                               if (updateCount >= 0) {\r
-                                                       AccumulateRecordsAffected(updateCount);\r
-                                                       _hasResultSet = true; //play as if we have resultset\r
-                                                       NextResultSet();\r
-                                               }\r
-                                       }                                       \r
-                               }\r
-                               connection.IsFetching = true;\r
-                               try {\r
-                                       _currentReader = CreateReader();\r
-                               }\r
-                               catch(Exception e) {\r
-                                       connection.IsFetching = false;\r
-                                       throw e;\r
-                               }\r
-                               return _currentReader;\r
-                       }\r
-                       catch(SQLException e) {                         \r
-                               throw CreateException(e);\r
-                       }\r
-                       finally {\r
-                               connection.IsExecuting = false;\r
-                               NullParametersInPrepare = false;\r
-                       }\r
-               }\r
-\r
-               public override void Prepare()\r
-               {\r
-                       ((AbstractDBConnection)Connection).IsExecuting = true;\r
-                       try {\r
-                               CheckParameters();\r
-                               _explicitPrepare = true;\r
-                       }\r
-                       finally {\r
-                               ((AbstractDBConnection)Connection).IsExecuting = false;\r
-                       }\r
-               }\r
-\r
-               private void PrepareInternal()\r
-               {\r
-                       if ((Connection == null) || (Connection.State != ConnectionState.Open)) {\r
-                               throw ExceptionHelper.ConnectionNotOpened("Prepare",(Connection != null) ? Connection.State.ToString() : "");\r
-                       }\r
-\r
-                       if (IsCommandPrepared) {\r
-                               // maybe we have to prepare the command again\r
-                               bool hasNullParameters = false;\r
-                               for(int i = 0; (i < Parameters.Count) && !hasNullParameters; i++) {\r
-                                       AbstractDbParameter parameter = (AbstractDbParameter)Parameters[i];\r
-                                       if (IsNullParameter(parameter)) {\r
-                                               // if we still have null parameters - have to prepare agail\r
-                                               IsCommandPrepared = false;\r
-                                               hasNullParameters = true;\r
-                                       }\r
-                               }\r
-\r
-                               if (!NullParametersInPrepare && hasNullParameters) {\r
-                                       // if we prepeared using null parameters and now there is no null parameters - need to prepare again\r
-                                       IsCommandPrepared = false;\r
-                               }\r
-                       }\r
-\r
-                       if (!IsCommandPrepared) {\r
-\r
-                               _javaCommandText = PrepareCommandTextAndParameters();\r
-\r
-                               java.sql.Connection jdbcCon = _connection.JdbcConnection;\r
-\r
-                               // For SchemaOnly we just prepare statement (for future use in GetSchemaTable)\r
-                               if (Behavior == CommandBehavior.SchemaOnly) {\r
-                                       if (CommandType == CommandType.StoredProcedure)\r
-                                               _statement = jdbcCon.prepareCall(_javaCommandText);\r
-                                       else\r
-                                               _statement = jdbcCon.prepareStatement(_javaCommandText);        \r
-                                       return;\r
-                               }\r
-\r
-                               if (CommandType == CommandType.StoredProcedure)\r
-                                       _statement = jdbcCon.prepareCall(_javaCommandText);\r
-                               else {\r
-                                       int internalParametersCount = InternalParameters.Count;\r
-                                       if ( internalParametersCount > 0) {\r
-                                               bool hasOnlyInputParameters = true;\r
-                                               for(int i=0; i < internalParametersCount; i++) {\r
-                                                       AbstractDbParameter internalParameter = (AbstractDbParameter)InternalParameters[i];\r
-                                                       if (IsNullParameter(internalParameter)) {\r
-                                                               NullParametersInPrepare = true;\r
-                                                       }\r
-\r
-                                                       if ((internalParameter.Direction & ParameterDirection.Output) != 0){\r
-                                                               hasOnlyInputParameters = false;\r
-                                                       }\r
-                                               }\r
-\r
-                                               if (hasOnlyInputParameters) {\r
-                                                       _statement = jdbcCon.prepareStatement(_javaCommandText);        \r
-                                               }\r
-                                               else {                                          \r
-                                                       _statement = jdbcCon.prepareCall(_javaCommandText);\r
-                                               }\r
-                                       }\r
-                                       else {\r
-                                               if (_explicitPrepare) {\r
-                                                       _statement = jdbcCon.prepareStatement(_javaCommandText);                                \r
-                                               }\r
-                                               else {\r
-                                                       _statement = jdbcCon.createStatement();                                 \r
-                                               }\r
-                                       }\r
-                               }\r
-                               IsCommandPrepared = true;\r
-                       }\r
-               }\r
-\r
-               protected void BindParameters(ArrayList parameters)\r
-               {\r
-                       for(int parameterIndex = 0; parameterIndex < parameters.Count; parameterIndex++) {\r
-                               AbstractDbParameter parameter = (AbstractDbParameter)parameters[parameterIndex];\r
-                               switch (parameter.Direction) {\r
-                                       case ParameterDirection.Input :\r
-                                               BindInputParameter(parameter,parameterIndex);\r
-                                               break;\r
-                                       case ParameterDirection.InputOutput:\r
-                                               BindInputParameter(parameter,parameterIndex);\r
-                                               BindOutputParameter(parameter,parameterIndex);\r
-                                               break;\r
-                                       case ParameterDirection.Output :\r
-                                               BindOutputParameter(parameter,parameterIndex);\r
-                                               break;\r
-                                       case ParameterDirection.ReturnValue :\r
-                                               BindOutputParameter(parameter,parameterIndex);\r
-                                               break;\r
-                               }\r
-                       }\r
-               }\r
-               \r
-               protected virtual void BindInputParameter(AbstractDbParameter parameter, int parameterIndex)\r
-               {\r
-                       object value = parameter.ConvertedValue;                        \r
-                       // java parameters are 1 based, while .net are 0 based\r
-                       parameterIndex++; \r
-                       PreparedStatement preparedStatement = ((PreparedStatement)_statement);\r
-\r
-                       switch ((DbConvert.JavaSqlTypes)parameter.JdbcType) {\r
-                               case DbConvert.JavaSqlTypes.DATALINK:\r
-                               case DbConvert.JavaSqlTypes.DISTINCT:\r
-                               case DbConvert.JavaSqlTypes.JAVA_OBJECT:\r
-                               case DbConvert.JavaSqlTypes.OTHER:\r
-                               case DbConvert.JavaSqlTypes.REF:\r
-                               case DbConvert.JavaSqlTypes.STRUCT: {\r
-                                       preparedStatement.setObject(parameterIndex, value, (int)parameter.JdbcType);\r
-                                       return;\r
-                               }\r
-                       }\r
-\r
-                       if ((value is DBNull) || (value == null)) {\r
-                               preparedStatement.setNull(parameterIndex, (int)((AbstractDbParameter)parameter).JdbcType);\r
-                       }\r
-                       else if (value is long) {\r
-                               preparedStatement.setLong(parameterIndex, (long)value);\r
-                       }\r
-                       else if (value is byte[]) {\r
-                               if (((byte[])value).Length <= 4000) {\r
-                                       preparedStatement.setBytes(parameterIndex, vmw.common.TypeUtils.ToSByteArray((byte[]) value));\r
-                               }\r
-                               else {\r
-                                       InputStream iStream=new ByteArrayInputStream(vmw.common.TypeUtils.ToSByteArray((byte[]) value));\r
-                                       preparedStatement.setBinaryStream(parameterIndex,iStream,((byte[])value).Length);\r
-                               }\r
-                       }\r
-                       else if (value is byte) {\r
-                               preparedStatement.setByte(parameterIndex, (sbyte)(byte)value);\r
-                       }\r
-                       else if (value is char[]) {\r
-                               Reader reader = new CharArrayReader((char[])value);\r
-                               preparedStatement.setCharacterStream(parameterIndex,reader,((char[])value).Length);\r
-                       }\r
-                       else if (value is bool) {\r
-                               preparedStatement.setBoolean(parameterIndex, (bool) value);\r
-                       }\r
-                       else if (value is char) {\r
-                               preparedStatement.setString(parameterIndex, ((char)value).ToString());\r
-                       }\r
-                       else if (value is DateTime) {\r
-                               switch ((DbConvert.JavaSqlTypes)parameter.JdbcType) {\r
-                                       default:\r
-                                       case DbConvert.JavaSqlTypes.TIMESTAMP:\r
-                                               preparedStatement.setTimestamp(parameterIndex,DbConvert.ClrTicksToJavaTimestamp(((DateTime)value).Ticks));\r
-                                               break;\r
-                                       case DbConvert.JavaSqlTypes.TIME:\r
-                                               preparedStatement.setTime(parameterIndex,DbConvert.ClrTicksToJavaTime(((DateTime)value).Ticks));\r
-                                               break;\r
-                                       case DbConvert.JavaSqlTypes.DATE:\r
-                                               preparedStatement.setDate(parameterIndex,DbConvert.ClrTicksToJavaDate(((DateTime)value).Ticks));\r
-                                               break;\r
-                               }\r
-                       }\r
-                       else if (value is TimeSpan) {\r
-                               if (parameter.JdbcType == (int)DbConvert.JavaSqlTypes.TIMESTAMP)\r
-                                       preparedStatement.setTimestamp(parameterIndex,DbConvert.ClrTicksToJavaTimestamp(((TimeSpan)value).Ticks));\r
-                               else\r
-                                       preparedStatement.setTime(parameterIndex,DbConvert.ClrTicksToJavaTime(((TimeSpan)value).Ticks));\r
-                       }\r
-                       else if (value is Decimal) {\r
-                               preparedStatement.setBigDecimal(parameterIndex, vmw.common.PrimitiveTypeUtils.DecimalToBigDecimal((Decimal) value));\r
-                       }\r
-                       else if (value is double) {\r
-                               preparedStatement.setDouble(parameterIndex, (double)value);\r
-                       }\r
-                       else if (value is float) {\r
-                               preparedStatement.setFloat(parameterIndex, (float)value);\r
-                       }\r
-                       else if (value is int) {\r
-                               preparedStatement.setInt(parameterIndex, (int)value);\r
-                       }\r
-                       else if (value is string) {\r
-                               //can not be done for inout params, due to Oracle problem with FIXED_CHAR out param fetching\r
-                               if (parameter.Direction == ParameterDirection.Input && \r
-                                       preparedStatement is Mainsoft.Data.Jdbc.Providers.IPreparedStatement &&\r
-                                       (DbConvert.JavaSqlTypes)parameter.JdbcType == DbConvert.JavaSqlTypes.CHAR) {\r
-                                       ((Mainsoft.Data.Jdbc.Providers.IPreparedStatement)preparedStatement)\r
-                                               .setChar(parameterIndex, (string)value);\r
-                               }\r
-                               else\r
-                                       preparedStatement.setString(parameterIndex, (string)value);\r
-                       }\r
-                       else if (value is Guid) {\r
-                               preparedStatement.setString(parameterIndex, value.ToString());\r
-                       }\r
-                       else if (value is short) {\r
-                               preparedStatement.setShort(parameterIndex, (short)value);\r
-                       }\r
-                       else if (value is sbyte) {\r
-                               preparedStatement.setByte(parameterIndex, (sbyte)value);\r
-                       }\r
-                       else {\r
-                               preparedStatement.setObject(parameterIndex, value);\r
-                       }\r
-               }\r
-\r
-               protected virtual void BindOutputParameter(AbstractDbParameter parameter, int parameterIndex)\r
-               {\r
-                       parameter.Validate();\r
-                       int jdbcType = (int)parameter.JdbcType;         \r
-                       // java parameters are 1 based, while .net are 0 based\r
-                       parameterIndex++;\r
-\r
-                       CallableStatement callableStatement = ((CallableStatement)_statement);\r
-\r
-                       // the scale has a meening only in DECIMAL and NUMERIC parameters\r
-                       if (jdbcType == Types.DECIMAL || jdbcType == Types.NUMERIC) {\r
-                               if(parameter.DbType == DbType.Currency) {\r
-                                       callableStatement.registerOutParameter(parameterIndex, jdbcType, 4);\r
-                               }\r
-                               else {\r
-                                       callableStatement.registerOutParameter(parameterIndex, jdbcType, parameter.Scale);\r
-                               }\r
-                       }\r
-                       else {\r
-                               callableStatement.registerOutParameter(parameterIndex, jdbcType);\r
-                       }\r
-               }\r
-\r
-               private void FillOutputParameters()\r
-               {       \r
-                       if  (!(_statement is CallableStatement)) {\r
-                               return;\r
-                       }\r
-                       for(int i = 0; i < InternalParameters.Count; i++) {\r
-                               AbstractDbParameter parameter = (AbstractDbParameter)InternalParameters[i];\r
-                               ParameterDirection direction = parameter.Direction;\r
-                               if (((direction & ParameterDirection.Output) != 0) && !SkipParameter(parameter)) {                                      \r
-                                       FillOutputParameter(parameter, i);\r
-                               }\r
-                               // drop jdbc type of out parameter, since it possibly was updated in ExecuteReader\r
-                               parameter.IsJdbcTypeSet = false;\r
-                       }\r
-               }\r
-\r
-               protected virtual void FillOutputParameter(DbParameter parameter, int index)\r
-               {                       \r
-                       CallableStatement callableStatement = (CallableStatement)_statement;\r
-                       ParameterMetadataWrapper parameterMetadataWrapper = null; \r
-                       // FIXME wait for other drivers to implement\r
-//                     try {\r
-//                             parameterMetadataWrapper = new ParameterMetadataWrapper(callableStatement.getParameterMetaData());\r
-//                     }\r
-//                     catch {\r
-//                             // suppress error : ms driver for sql server does not implement getParameterMetaData\r
-//                             // suppress exception : ms driver for sql server does not implement getParameterMetaData\r
-//                     }\r
-                       DbConvert.JavaSqlTypes javaSqlType = (DbConvert.JavaSqlTypes)((AbstractDbParameter)parameter).JdbcType;\r
-                       try {\r
-                               parameter.Value = DbConvert.JavaResultSetToClrWrapper(callableStatement,index,javaSqlType,parameter.Size,parameterMetadataWrapper);\r
-                       }\r
-                       catch(java.sql.SQLException e) {\r
-                               throw CreateException(e);\r
-                       }\r
-               }\r
-\r
-               // AbstractDbCommand acts as IEnumerator over JDBC statement\r
-               // AbstractDbCommand.NextResultSet corresponds to IEnumerator.MoveNext\r
-               protected internal virtual bool NextResultSet()\r
-               {\r
-                       if (!_hasResultSet)\r
-                               return false;\r
-\r
-                       try {\r
-                               for(;;) {\r
-                                       _hasResultSet = _statement.getMoreResults();\r
-                                       if (_hasResultSet)\r
-                                               return true;\r
-                                       int updateCount = _statement.getUpdateCount();\r
-                                       if (updateCount < 0)\r
-                                               return false;\r
-\r
-                                       AccumulateRecordsAffected(updateCount); \r
-                               }\r
-                       }\r
-                       catch (SQLException e) {\r
-                               throw CreateException(e);\r
-                       }\r
-                       finally {\r
-                               _currentResultSet = null;\r
-                       }\r
-               }\r
-\r
-               private void AccumulateRecordsAffected(int updateCount)\r
-               { \r
-                       if (_recordsAffected < 0) {\r
-                               _recordsAffected = updateCount;\r
-                       }\r
-                       else {\r
-                               _recordsAffected += updateCount;\r
-                       }\r
-               }\r
-\r
-               internal void OnReaderClosed(object reader)\r
-               {\r
-                       CloseInternal();\r
-                       if (Connection != null) {\r
-                               ((AbstractDBConnection)Connection).RemoveReference(reader);\r
-                               ((AbstractDBConnection)Connection).IsFetching = false;\r
-                               if ((Behavior & CommandBehavior.CloseConnection) != 0) {\r
-                                       Connection.Close();\r
-                               }\r
-                       }                       \r
-               }\r
-\r
-               internal void CloseInternal()\r
-               {\r
-                       if (Behavior != CommandBehavior.SchemaOnly) {\r
-                               if (_statement != null) {\r
-                                       while (NextResultSet()) {\r
-                                       }                                                       \r
-                                       FillOutputParameters();                         \r
-                               }\r
-                       }\r
-                       _currentReader = null;\r
-                       CleanUp();\r
-               }\r
-\r
-               protected override void Dispose(bool disposing)\r
-               {\r
-                       if (disposing) {\r
-                               CleanUp();\r
-                       }\r
-                       base.Dispose(disposing);\r
-               }\r
-\r
-               private void CleanUp()\r
-               {\r
-                       if (_currentReader != null) {\r
-                               // we must preserve statement object until we have an associated reader object that might access it.\r
-                               return;\r
-                       }\r
-                       if (Connection != null) {\r
-                               ((AbstractDBConnection)Connection).RemoveReference(this);\r
-                       }\r
-                       if (_statement != null) {\r
-                               _statement.close();\r
-                               _statement = null;\r
-                       }                               \r
-                       IsCommandPrepared = false;\r
-                       _internalParameters = null;\r
-                       _currentResultSet = null;\r
-               }\r
-\r
-               internal void OnSchemaChanging()\r
-               {\r
-               }\r
-\r
-               #endregion // Methods\r
-\r
-               #region ICloneable Members\r
-\r
-               public virtual object Clone() {\r
-                       AbstractDbCommand target = (AbstractDbCommand)MemberwiseClone();\r
-                       target._statement = null;\r
-                       target._isCommandPrepared = false;\r
-                       target._internalParameters = null;\r
-                       target._javaCommandText = null;\r
-                       target._recordsAffected = -1;\r
-                       target._currentResultSet = null;\r
-                       target._currentReader = null;\r
-                       target._nullParametersInPrepare = false;\r
-                       target._hasResultSet = false;\r
-                       target._explicitPrepare = false;\r
-                       if (Parameters != null && Parameters.Count > 0) {\r
-                               target._parameters = CreateParameterCollection(target);\r
-                               for(int i=0 ; i < Parameters.Count; i++) {\r
-                                       target.Parameters.Add(((AbstractDbParameter)Parameters[i]).Clone());\r
-                               }\r
-                       }\r
-                       return target;\r
-               }\r
-\r
-               #endregion\r
-       }\r
-}\r
diff --git a/mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractDBConnection.cs b/mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractDBConnection.cs
deleted file mode 100644 (file)
index c5b4222..0000000
+++ /dev/null
@@ -1,737 +0,0 @@
-//\r
-// System.Data.Common.AbstractDBConnection\r
-//\r
-// Authors:\r
-//     Konstantin Triger <kostat@mainsoft.com>\r
-//     Boris Kirzner <borisk@mainsoft.com>\r
-//     \r
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)\r
-//\r
-\r
-//\r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-// \r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-//\r
-\r
-using System.Globalization;\r
-using System.Data;\r
-using System.Data.ProviderBase;\r
-using System.Data.Configuration;\r
-using System.Configuration;\r
-using System.Collections;\r
-using System.Collections.Specialized;\r
-using System.Text;\r
-using System.Text.RegularExpressions;\r
-using Mainsoft.Data.Jdbc.Providers;\r
-using System.Data.Common;\r
-\r
-using java.sql;\r
-using javax.sql;\r
-using javax.naming;\r
-\r
-using Mainsoft.Data.Configuration;\r
-\r
-namespace System.Data.ProviderBase\r
-{\r
-       public abstract class AbstractDBConnection : DbConnection, ICloneable\r
-       {\r
-               #region ObjectNamesHelper\r
-\r
-               private sealed class ObjectNamesHelper\r
-               {\r
-                       //static readonly Regex NameOrder = new Regex(@"^\s*((\[(?<NAME>(\s*[^\[\]\s])+)\s*\])|(?<NAME>(\w|!|\#|\$)+(\s*(\w|!|\#|\$)+)*))\s*$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);\r
-                       static readonly Regex NameOrder = new Regex(@"^((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);\r
-\r
-                       //static readonly Regex SchemaNameOrder = new Regex(@"^\s*((\[(?<SCHEMA>(\s*[^\[\]\s])+)\s*\])|(?<SCHEMA>(\w|!|\#|\$)*(\s*(\w|!|\#|\$)+)*))\s*\.\s*((\[(?<NAME>(\s*[^\[\]\s])+)\s*\])|(?<NAME>(\w|!|\#|\$)+(\s*(\w|!|\#|\$)+)*))\s*$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);\r
-                       static readonly Regex SchemaNameOrder = new Regex(@"^((\[(?<SCHEMA>[^\]]+)\])|(?<SCHEMA>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);\r
-                       //static readonly Regex CatalogSchemaNameOrder = new Regex(@"^\s*((\[\s*(?<CATALOG>(\s*[^\[\]\s])+)\s*\])|(?<CATALOG>(\w|!|\#|\$)*(\s*(\w|!|\#|\$)+)*))\s*\.\s*((\[(?<SCHEMA>(\s*[^\[\]\s])+)\s*\])|(?<SCHEMA>(\w|!|\#|\$)*(\s*(\w|!|\#|\$)+)*))\s*\.\s*((\[(?<NAME>(\s*[^\[\]\s])+)\s*\])|(?<NAME>(\w|!|\#|\$)+(\s*(\w|!|\#|\$)+)*))\s*$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);\r
-                       //static readonly Regex CatalogSchemaNameOrder = new Regex(@"^\s*((\[\s*(?<CATALOG>(\s*[^\]\s])+)\s*\])|(?<CATALOG>([^\.\s])*(\s*([^\.\s])+)*))\s*\.\s*((\[(?<SCHEMA>(\s*[^\]\s])+)\s*\])|(?<SCHEMA>([^\.\s])*(\s*([^\.\s])+)*))\s*\.\s*((\[(?<NAME>(\s*[^\]\s])+)\s*\])|(?<NAME>([^\.\s])+(\s*([^\.\s])+)*))\s*$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);\r
-                       static readonly Regex CatalogSchemaNameOrder = new Regex(@"^((\[(?<CATALOG>[^\]]+)\])|(?<CATALOG>[^\.\[\]]+))\s*\.\s*((\[(?<SCHEMA>[^\]]+)\])|(?<SCHEMA>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);\r
-\r
-                       //static readonly Regex CatalogNameOrder = new Regex(@"^\s*((\[(?<CATALOG>(\s*[^\[\]\s])+)\s*\])|(?<CATALOG>(\w|!|\#|\$)*(\s*(\w|!|\#|\$)+)*))\s*\.\s*((\[(?<NAME>(\s*[^\[\]\s])+)\s*\])|(?<NAME>(\w|!|\#|\$)+(\s*(\w|!|\#|\$)+)*))\s*$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);\r
-                       //static readonly Regex CatalogNameOrder = new Regex(@"^\s*((\[(?<CATALOG>(\s*[^\]\s])+)\s*\])|(?<CATALOG>([^\.\s])*(\s*([^\.\s])+)*))\s*\.\s*((\[(?<NAME>(\s*[^\]\s])+)\s*\])|(?<NAME>([^\.\s])+(\s*([^\.\s])+)*))\s*$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);\r
-                       static readonly Regex CatalogNameOrder = new Regex(@"^((\[(?<CATALOG>[^\]]+)\])|(?<CATALOG>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);\r
-                       //static readonly Regex SchemaCatalogNameOrder = new Regex(@"^\s*((\[\s*(?<SCHEMA>(\s*[^\[\]\s])+)\s*\])|(?<SCHEMA>(\w|!|\#|\$)*(\s*(\w|!|\#|\$)+)*))\s*\.\s*((\[(?<CATALOG>(\s*[^\[\]\s])+)\s*\])|(?<CATALOG>(\w|!|\#|\$)*(\s*(\w|!|\#|\$)+)*))\s*\.\s*((\[(?<NAME>(\s*[^\[\]\s])+)\s*\])|(?<NAME>(\w|!|\#|\$)+(\s*(\w|!|\#|\$)+)*))\s*$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);\r
-                       //static readonly Regex SchemaCatalogNameOrder = new Regex(@"^\s*((\[\s*(?<SCHEMA>(\s*[^\]\s])+)\s*\])|(?<SCHEMA>([^\.\s])*(\s*([^\.\s])+)*))\s*\.\s*((\[(?<CATALOG>(\s*[^\]\s])+)\s*\])|(?<CATALOG>([^\.\s])*(\s*([^\.\s])+)*))\s*\.\s*((\[(?<NAME>(\s*[^\]\s])+)\s*\])|(?<NAME>([^\.\s])+(\s*([^\.\s])+)*))\s*$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);\r
-                       static readonly Regex SchemaCatalogNameOrder = new Regex(@"^((\[(?<SCHEMA>[^\]]+)\])|(?<SCHEMA>[^\.\[\]]+))\s*\.\s*((\[(?<CATALOG>[^\]]+)\])|(?<CATALOG>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);\r
-\r
-                       internal static ObjectNameResolver[] GetSyntaxPatterns(AbstractDBConnection connection)\r
-                       {\r
-                               ArrayList collection = new ArrayList();\r
-                               collection.Add(new ObjectNameResolver(NameOrder));\r
-\r
-                               ObjectNameResolversCollection basic = (ObjectNameResolversCollection) ConfigurationSettings.GetConfig ("Mainsoft.Data.Configuration/objectnameresolution");\r
-                               \r
-                               java.sql.DatabaseMetaData metaData = connection.JdbcConnection.getMetaData();\r
-                               string productName = metaData.getDatabaseProductName();\r
-\r
-                               foreach(ObjectNameResolver nameResolver in basic) {\r
-                                       if (productName.IndexOf(nameResolver.DbName) != -1) {\r
-                                               collection.Add(nameResolver);\r
-                                       }\r
-                               }\r
-\r
-                               //defaults\r
-                               if (metaData.isCatalogAtStart()) {\r
-                                       collection.Add(new ObjectNameResolver(SchemaNameOrder));\r
-                                       collection.Add(new ObjectNameResolver(CatalogNameOrder));\r
-                                       collection.Add(new ObjectNameResolver(CatalogSchemaNameOrder));\r
-                                       collection.Add(new ObjectNameResolver(SchemaCatalogNameOrder));\r
-                               }\r
-                               else {\r
-                                       collection.Add(new ObjectNameResolver(CatalogNameOrder));\r
-                                       collection.Add(new ObjectNameResolver(SchemaNameOrder));\r
-                                       collection.Add(new ObjectNameResolver(SchemaCatalogNameOrder));\r
-                                       collection.Add(new ObjectNameResolver(CatalogSchemaNameOrder));\r
-                               }\r
-\r
-                               return (ObjectNameResolver[])collection.ToArray(typeof(ObjectNameResolver));                            \r
-                       }\r
-               }\r
-\r
-               #endregion // ObjectNamesHelper\r
-               \r
-               #region Fields\r
-\r
-               private const int DEFAULT_TIMEOUT = 15;\r
-\r
-               private java.sql.Connection _jdbcConnnection;\r
-               private ConnectionState _internalState;\r
-               private object _internalStateSync = new object();\r
-\r
-               private string _connectionString = String.Empty;\r
-               IConnectionStringDictionary _connectionStringBuilder;\r
-               IConnectionProvider                     _connectionProvider;\r
-\r
-               private ArrayList _referencedObjects = new ArrayList(); \r
-               private ObjectNameResolver[] _syntaxPatterns;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Constructors\r
-\r
-               public AbstractDBConnection(string connectionString)\r
-               {\r
-                       _connectionString = connectionString;\r
-               }\r
-\r
-               #endregion // Constructors\r
-\r
-               #region Properties\r
-\r
-               public override String ConnectionString\r
-               {\r
-                       get { return _connectionString; }\r
-                       set {\r
-                               if (IsOpened) {\r
-                                       throw ExceptionHelper.NotAllowedWhileConnectionOpen("ConnectionString",_internalState);\r
-                               }                                       \r
-                               _connectionString = value;\r
-                               _connectionProvider = null;\r
-                               _connectionStringBuilder = null;\r
-                       }\r
-               }\r
-\r
-               public override int ConnectionTimeout\r
-               {\r
-                       get {\r
-                               string timeoutStr = (string)ConnectionStringBuilder["loginTimeout"];\r
-                               if (timeoutStr != null && timeoutStr.Length > 0) {\r
-                                       try {\r
-                                               return Convert.ToInt32(timeoutStr);\r
-                                       }\r
-                                       catch(FormatException) {\r
-                                               throw ExceptionHelper.InvalidValueForKey("connect timeout");\r
-                                       }\r
-                                       catch (OverflowException) {\r
-                                               throw ExceptionHelper.InvalidValueForKey("connect timeout");\r
-                                       }\r
-                               }\r
-                               return DEFAULT_TIMEOUT;\r
-                       }\r
-               }\r
-\r
-               public override String Database\r
-               {\r
-                       get { \r
-                               if ((State & ConnectionState.Open) != 0)\r
-                                       return JdbcConnection.getCatalog();\r
-\r
-                               return (string)ConnectionStringBuilder["DATABASE"];\r
-                       }\r
-               }\r
-\r
-               public override ConnectionState State\r
-               {\r
-                       get {\r
-                               try {\r
-                                       if ((JdbcConnection == null) || JdbcConnection.isClosed()) {\r
-                                               // jdbc connection not initialized or closed\r
-                                               if (_internalState == ConnectionState.Closed ) {\r
-                                                       return ConnectionState.Closed;\r
-                                               }\r
-                                       }\r
-                                       else {\r
-                                               // jdbc connection is opened\r
-                                               if ((_internalState & ConnectionState.Open) != 0) {\r
-                                                       return ConnectionState.Open;\r
-                                               }\r
-                                       }\r
-                                       return ConnectionState.Broken;                                                                          \r
-                               }       \r
-                               catch (SQLException) {\r
-                                       return ConnectionState.Broken;\r
-                               }                               \r
-                       }\r
-               }\r
-\r
-               internal bool IsExecuting\r
-               {\r
-                       get { \r
-                               return ((_internalState & ConnectionState.Executing) != 0);\r
-                       }\r
-\r
-                       set {\r
-                               lock(_internalStateSync) {\r
-                                       // to switch to executing, the connection must be in opened\r
-                                       if (value) {\r
-                                               if (_internalState != ConnectionState.Open) {\r
-                                                       if (IsFetching) {\r
-                                                               throw ExceptionHelper.OpenedReaderExists();\r
-                                                       }\r
-                                                       throw ExceptionHelper.OpenConnectionRequired("",_internalState);\r
-                                               }\r
-                                               _internalState |= ConnectionState.Executing;\r
-                                       }\r
-                                       else { \r
-                                               if (!IsExecuting) {\r
-                                                       throw new InvalidOperationException("Connection : Impossible to tear down from state " + ConnectionState.Executing.ToString() + " while in state " + _internalState.ToString());\r
-                                               }\r
-                                               _internalState &= ~ConnectionState.Executing;\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-\r
-               internal bool IsFetching\r
-               {\r
-                       get {\r
-                               return ((_internalState & ConnectionState.Fetching) != 0);\r
-                       }\r
-\r
-                       set {\r
-                               lock(_internalStateSync) {\r
-                                       if (value) {\r
-                                               // to switch to fetching connection must be in opened, executing\r
-                                               if (((_internalState & ConnectionState.Open) == 0) || ((_internalState & ConnectionState.Executing) == 0)) {\r
-                                                       throw ExceptionHelper.OpenConnectionRequired("",_internalState);\r
-                                               }\r
-                                               _internalState |= ConnectionState.Fetching;\r
-                                       }\r
-                                       else {\r
-                                               if (!IsFetching) {\r
-                                                       throw new InvalidOperationException("Connection : Impossible to tear down from state " + ConnectionState.Fetching.ToString() + " while in state " + _internalState.ToString());\r
-                                               }\r
-                                               _internalState &= ~ConnectionState.Fetching;\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-\r
-               internal bool IsOpened\r
-               {\r
-                       get {\r
-                               return ((_internalState & ConnectionState.Open) != 0);\r
-                       }\r
-\r
-                       set {\r
-                               lock(_internalStateSync) {                      \r
-                                       if (value) {\r
-                                               // only connecting connection can be opened\r
-                                               if ((_internalState != ConnectionState.Connecting)) {\r
-                                                       throw ExceptionHelper.ConnectionAlreadyOpen(_internalState);\r
-                                               }\r
-                                               _internalState |= ConnectionState.Open;\r
-                                       }\r
-                                       else {\r
-                                               if (!IsOpened) {\r
-                                                       throw new InvalidOperationException("Connection : Impossible to tear down from state " + ConnectionState.Open.ToString() + " while in state " + _internalState.ToString());\r
-                                               }\r
-                                               _internalState &= ~ConnectionState.Open;\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-\r
-               internal bool IsConnecting\r
-               {\r
-                       get {\r
-                               return ((_internalState & ConnectionState.Connecting) != 0);\r
-                       }\r
-\r
-                       set {\r
-                               lock(_internalStateSync) {                      \r
-                                       if (value) {\r
-                                               // to switch to connecting conection must be in closed or in opened\r
-                                               if ((_internalState != ConnectionState.Closed) && (_internalState != ConnectionState.Open)) {\r
-                                                       throw ExceptionHelper.ConnectionAlreadyOpen(_internalState);\r
-                                               }\r
-                                               _internalState |= ConnectionState.Connecting;\r
-                                       }\r
-                                       else {\r
-                                               if (!IsConnecting) {\r
-                                                       throw new InvalidOperationException("Connection : Impossible to tear down from state " + ConnectionState.Connecting.ToString() + " while in state " + _internalState.ToString());\r
-                                               }\r
-                                               _internalState &= ~ConnectionState.Connecting;\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-\r
-               public override string DataSource\r
-               {\r
-                       get {\r
-                               return (string)ConnectionStringBuilder["SERVERNAME"];\r
-                       }\r
-               }\r
-\r
-               internal ConnectionState InternalState\r
-               {\r
-                       get     { return _internalState; }\r
-               }\r
-\r
-\r
-               protected internal java.sql.Connection JdbcConnection\r
-               {\r
-                       get { return _jdbcConnnection; }\r
-                       set { _jdbcConnnection = value; }\r
-               }\r
-\r
-               internal ObjectNameResolver[] SyntaxPatterns\r
-               {\r
-                       get {\r
-                               if (_syntaxPatterns == null) {\r
-                                       _syntaxPatterns = ObjectNamesHelper.GetSyntaxPatterns(this);\r
-                               }\r
-                               return _syntaxPatterns;\r
-                       }\r
-               }\r
-\r
-               protected internal IConnectionProvider ConnectionProvider { \r
-                       get {\r
-                               try {\r
-                                       if (_connectionProvider == null)\r
-                                               _connectionProvider = GetConnectionProvider();\r
-\r
-                                       return _connectionProvider;\r
-                               }\r
-                               catch(SQLException exp) {\r
-                                       throw CreateException(exp);\r
-                               }\r
-                       }\r
-               }\r
-               protected internal IConnectionStringDictionary ConnectionStringBuilder {\r
-                       get {\r
-                               try {\r
-                                       if (_connectionStringBuilder == null)\r
-                                               _connectionStringBuilder = ConnectionProvider.GetConnectionStringBuilder(ConnectionString);\r
-\r
-                                       return _connectionStringBuilder;\r
-                               }\r
-                               catch(SQLException exp) {\r
-                                       throw CreateException(exp);\r
-                               }\r
-                       }\r
-               }\r
-               protected abstract IConnectionProvider GetConnectionProvider();\r
-\r
-               static protected IConnectionProvider GetConnectionProvider(string sectionMame, string provider) {\r
-                       if (provider == null)\r
-                               throw new ArgumentNullException("provider");\r
-\r
-                       IList providers = (IList) ConfigurationSettings.GetConfig(sectionMame);\r
-                       if (providers.Count == 0)\r
-                               throw new ArgumentException("Configuration section is empty.", "sectionName");\r
-\r
-                       for (int i = 0; i < providers.Count; i++) {\r
-                               IDictionary providerInfo = (IDictionary) providers[i];\r
-                                       \r
-                               string curProvider = (string)providerInfo[ConfigurationConsts.Name];\r
-                               if (String.Compare(provider, 0, curProvider, 0, provider.Length, StringComparison.OrdinalIgnoreCase) == 0) {\r
-                                       string providerType = (string) providerInfo [ConfigurationConsts.ProviderType];\r
-                                       if (providerType == null || providerType.Length == 0)\r
-                                               return new GenericProvider (providerInfo); \r
-                                       else {\r
-                                               Type t = Type.GetType (providerType);\r
-                                               return (IConnectionProvider) Activator.CreateInstance (t , new object[] {providerInfo});\r
-                                       }\r
-                               }\r
-                       }\r
-\r
-                       throw new ArgumentException(\r
-                               String.Format("Unknown provider name '{0}'", provider), "ConnectionString");\r
-               }\r
-\r
-               #endregion // Properties\r
-\r
-               #region Methods\r
-                       // since WS also does not permits dynamically change of login timeout and tomcat does no implements - do not do it at all\r
-                       //ds.setLoginTimeout(ConnectionTimeout);\r
-\r
-               protected internal abstract void OnSqlWarning(SQLWarning warning);\r
-\r
-               protected abstract SystemException CreateException(SQLException e);\r
-\r
-               protected abstract SystemException CreateException(string message);\r
-\r
-               public override void Close()\r
-               {\r
-                       ConnectionState orig = State;\r
-                       try {\r
-                               ClearReferences();\r
-                               if (JdbcConnection != null && !JdbcConnection.isClosed()) {\r
-                                       if (!JdbcConnection.getAutoCommit())\r
-                                               JdbcConnection.rollback();\r
-                                       JdbcConnection.close();\r
-                               }\r
-                       }\r
-                       catch (Exception e) {\r
-                               // suppress exception\r
-#if DEBUG\r
-                               Console.WriteLine("Exception catched at Conection.Close() : {0}\n{1}\n{2}",e.GetType().FullName,e.Message,e.StackTrace);\r
-#endif\r
-                       }\r
-                       finally {\r
-                               JdbcConnection = null;\r
-                               lock(_internalStateSync) {\r
-                                       _internalState = ConnectionState.Closed;\r
-                               }\r
-                       }\r
-\r
-                       ConnectionState current = State;\r
-                       if (current != orig)\r
-                               OnStateChange (new StateChangeEventArgs (orig, current));\r
-               }\r
-\r
-               internal protected virtual void OnSqlException(SQLException exp)\r
-               {\r
-                       throw CreateException(exp);\r
-               }\r
-\r
-               internal void AddReference(object referencedObject)\r
-               {       lock(_referencedObjects.SyncRoot) {\r
-                               _referencedObjects.Add(new WeakReference(referencedObject));\r
-                       }\r
-               }\r
-\r
-               internal void RemoveReference(object referencedObject)\r
-               {\r
-                       lock(_referencedObjects.SyncRoot) {\r
-                               for(int i = 0; i < _referencedObjects.Count; i++) {\r
-                                       WeakReference wr = (WeakReference) _referencedObjects[i];\r
-                                       if (wr.IsAlive && (wr.Target == referencedObject)) {\r
-                                               _referencedObjects.RemoveAt(i);\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-\r
-               private void ClearReferences()\r
-               {\r
-                       ArrayList oldList = _referencedObjects;\r
-                       _referencedObjects = new ArrayList();\r
-\r
-                       for(int i = 0; i < oldList.Count; i++) {\r
-                               WeakReference wr = (WeakReference) oldList[i];\r
-                               if (wr.IsAlive) {\r
-                                       ClearReference(wr.Target);\r
-                               }\r
-                       }\r
-               }\r
-\r
-               private void ClearReference(object referencedObject)\r
-               {\r
-                       try {\r
-                               if (referencedObject is AbstractDbCommand) {\r
-                                       ((AbstractDbCommand)referencedObject).CloseInternal();\r
-                               }\r
-                               else if (referencedObject is AbstractDataReader) {\r
-                                       ((AbstractDataReader)referencedObject).CloseInternal();\r
-                               }\r
-                       }\r
-                       catch (SQLException) {\r
-                               // suppress exception since it's possible that command or reader are in inconsistent state\r
-                       }\r
-               }\r
-\r
-               public override void Open()\r
-               {\r
-                       if (_connectionString == null || _connectionString.Length == 0) {\r
-                               throw ExceptionHelper.ConnectionStringNotInitialized();\r
-                       }\r
-\r
-                       IsConnecting = true;\r
-                       try {                   \r
-                               if (JdbcConnection != null && !JdbcConnection.isClosed()) {\r
-                                       throw ExceptionHelper.ConnectionAlreadyOpen(_internalState);\r
-                               }\r
-\r
-                               JdbcConnection = ConnectionProvider.GetConnection (ConnectionStringBuilder);\r
-\r
-                               IsOpened = true;\r
-\r
-                               OnStateChange (new StateChangeEventArgs (ConnectionState.Closed, ConnectionState.Open));\r
-                       }\r
-                       catch (SQLWarning warning) {\r
-                               OnSqlWarning(warning);\r
-                       }\r
-                       catch (SQLException exp) {\r
-                               OnSqlException(exp);\r
-                       }\r
-                       finally {\r
-                               IsConnecting = false;\r
-                       }\r
-               }\r
-\r
-               public override void ChangeDatabase(String database)\r
-               {\r
-                       IsConnecting = true;\r
-                       try {\r
-                               ClearReferences();\r
-                               java.sql.Connection con = JdbcConnection;                               \r
-                               con.setCatalog(database);\r
-//                             ConnectionStringHelper.UpdateValue(UserParameters,StringManager.GetStringArray("CON_DATABASE"),database);\r
-                       }\r
-                       catch (SQLWarning warning) {\r
-                               OnSqlWarning(warning);\r
-                       }\r
-                       catch (SQLException exp) {\r
-                               throw CreateException(exp);\r
-                       }\r
-                       finally {\r
-                               IsConnecting = false;\r
-                       }\r
-               }\r
-\r
-               public override string ServerVersion {\r
-                       get {\r
-                               // only if the driver support this methods\r
-                               try {\r
-                                       if (JdbcConnection == null)\r
-                                               return String.Empty;\r
-\r
-                                       java.sql.DatabaseMetaData metaData = JdbcConnection.getMetaData();\r
-                                       return metaData.getDatabaseProductVersion();\r
-                               }\r
-                               catch (SQLException exp) {\r
-                                       throw CreateException(exp);\r
-                               }\r
-                       }\r
-               }\r
-\r
-               internal string JdbcProvider {\r
-                       get {\r
-                               // only if the driver support this methods\r
-                               try {\r
-                                       if (JdbcConnection == null)\r
-                                               return String.Empty;\r
-\r
-                                       java.sql.DatabaseMetaData metaData = JdbcConnection.getMetaData();\r
-                                       return metaData.getDriverName() + " " + metaData.getDriverVersion();\r
-                               }\r
-                               catch (SQLException exp) {\r
-                                       return String.Empty; //suppress\r
-                               }\r
-                       }\r
-               }\r
-\r
-               protected override void Dispose(bool disposing)\r
-               {\r
-                       if (disposing) {\r
-                               try {\r
-                                       if (JdbcConnection != null && !JdbcConnection.isClosed()) {\r
-                                               JdbcConnection.close();\r
-                                       }                       \r
-                                       JdbcConnection = null;\r
-                               }\r
-                               catch (java.sql.SQLException exp) {\r
-                                       throw CreateException(exp);\r
-                               }\r
-                       }\r
-                       base.Dispose(disposing);\r
-               }\r
-\r
-               internal void ValidateBeginTransaction()\r
-               {\r
-                       if (State != ConnectionState.Open) {\r
-                               throw new InvalidOperationException(String.Format("{0} requires an open and available Connection. The connection's current state is {1}.", new object[] {"BeginTransaction", State}));\r
-                       }\r
-\r
-                       if (!JdbcConnection.getAutoCommit()) {\r
-                               throw new System.InvalidOperationException("Parallel transactions are not supported.");\r
-                       }\r
-               }\r
-\r
-               internal ArrayList GetProcedureColumns(String procedureString, AbstractDbCommand command)\r
-               {\r
-                       ArrayList col = new ArrayList();\r
-                       try {\r
-                               ObjectNameResolver[] nameResolvers = SyntaxPatterns;\r
-                               java.sql.ResultSet res = null;\r
-                               string catalog = null;\r
-                               string schema = null;\r
-                               string spname = null;\r
-                                               \r
-                               java.sql.DatabaseMetaData metadata = JdbcConnection.getMetaData();      \r
-                               bool storesUpperCaseIdentifiers = false;\r
-                               bool storesLowerCaseIdentifiers = false;\r
-                               try {\r
-                                       storesUpperCaseIdentifiers = metadata.storesUpperCaseIdentifiers();\r
-                                       storesLowerCaseIdentifiers = metadata.storesLowerCaseIdentifiers();\r
-                               }\r
-                               catch (SQLException e) {\r
-                                       // suppress\r
-                               }\r
-\r
-                               for(int i=0; i < nameResolvers.Length; i++) {\r
-                                       ObjectNameResolver nameResolver = nameResolvers[i];\r
-                                       Match match = nameResolver.Match(procedureString);\r
-\r
-                                       if (match.Success) {\r
-                                               spname = ObjectNameResolver.GetName(match);                             \r
-                                               schema = ObjectNameResolver.GetSchema(match);                                           \r
-                                               catalog = ObjectNameResolver.GetCatalog(match);                                         \r
-\r
-                                               // make all identifiers uppercase or lowercase according to database metadata\r
-                                               if (storesUpperCaseIdentifiers) {\r
-                                                       spname = (spname.Length > 0) ? spname.ToUpper() : null;\r
-                                                       schema = (schema.Length > 0) ? schema.ToUpper() : null;\r
-                                                       catalog = (catalog.Length > 0) ? catalog.ToUpper() : null;\r
-                                               }\r
-                                               else if (storesLowerCaseIdentifiers) {\r
-                                                       spname = (spname.Length > 0) ? spname.ToLower() : null;\r
-                                                       schema = (schema.Length > 0) ? schema.ToLower() : null;\r
-                                                       catalog = (catalog.Length > 0) ? catalog.ToLower() : null;\r
-                                               }\r
-                                               else {\r
-                                                       spname = (spname.Length > 0) ? spname : null;\r
-                                                       schema = (schema.Length > 0) ? schema : null;\r
-                                                       catalog = (catalog.Length > 0) ? catalog : null;\r
-                                               }\r
-\r
-                                               // catalog from db is always in correct caps\r
-                                               if (catalog == null) {\r
-                                                       catalog = JdbcConnection.getCatalog();\r
-                                               }\r
-\r
-                                               try {\r
-                                                       // always get the first procedure that db returns\r
-                                                       res = metadata.getProcedures(catalog, schema, spname);                                                                                          \r
-                                                       if (res.next()) {\r
-                                                               catalog = res.getString(1);\r
-                                                               schema = res.getString(2);\r
-                                                               spname = res.getString(3);\r
-                                                               break;\r
-                                                       }\r
-\r
-                                                       spname = null;\r
-                                               }\r
-                                               catch { // suppress exception\r
-                                                       return null;\r
-                                               }\r
-                                               finally {\r
-                                                       if (res != null) {\r
-                                                               res.close();\r
-                                                       }\r
-                                               }\r
-                                       }\r
-                               }       \r
-               \r
-                               if (spname == null || spname.Length == 0) {\r
-                                       return null;\r
-                               }\r
-                               \r
-                               try {\r
-                                       // get procedure columns based o  procedure metadata\r
-                                       res = metadata.getProcedureColumns(catalog, schema, spname, null);                              \r
-                                       while (res.next()) {\r
-                                               // since there is still a possibility that some of the parameters to getProcedureColumn were nulls, \r
-                                               // we need to filter the results with strict matching\r
-                                               if ((res.getString(1) != catalog ) || (res.getString(2) != schema) || (res.getString(3) != spname)) {\r
-                                                       continue;\r
-                                               }\r
-\r
-                                               AbstractDbParameter parameter = (AbstractDbParameter)command.CreateParameter();\r
-                                               \r
-                                               parameter.SetParameterName(res);\r
-                                               parameter.SetParameterDbType(res);\r
-                                               parameter.SetSpecialFeatures(res);\r
-\r
-                                               //get parameter direction\r
-                                               short direction = res.getShort("COLUMN_TYPE");\r
-                                               if(direction == 1) //DatabaseMetaData.procedureColumnIn\r
-                                                       parameter.Direction = ParameterDirection.Input;\r
-                                               else if(direction == 2) //DatabaseMetaData.procedureColumnInOut\r
-                                                       parameter.Direction = ParameterDirection.InputOutput;\r
-                                               else if(direction == 4) //DatabaseMetaData.procedureColumnOut\r
-                                                       parameter.Direction = ParameterDirection.Output;\r
-                                               else if(direction == 5) //DatabaseMetaData.procedureColumnReturn\r
-                                                       parameter.Direction = ParameterDirection.ReturnValue;\r
-                                       \r
-                                               //get parameter precision and scale\r
-                                               parameter.SetParameterPrecisionAndScale(res);\r
-\r
-                                               parameter.SetParameterSize(res);\r
-                                               parameter.SetParameterIsNullable(res);\r
-\r
-                                               col.Add(parameter);\r
-                                       }\r
-                               }\r
-                               finally {\r
-                                       if (res != null) {\r
-                                               res.close();\r
-                                       }\r
-                               }                               \r
-                       }\r
-                       catch(Exception e) {\r
-                               //supress\r
-#if DEBUG\r
-                               Console.WriteLine("Exception catched at AbstractDBConnection.GetProcedureColumns() : {0}\n{1}\n{2}",e.GetType().FullName,e.Message,e.StackTrace);\r
-#endif\r
-                       }\r
-                       return col;\r
-               }\r
-\r
-               #endregion // Methods   \r
-\r
-               #region ICloneable Members\r
-\r
-               public virtual object Clone() {\r
-                       AbstractDBConnection con  = (AbstractDBConnection)MemberwiseClone();\r
-                       con._internalState = ConnectionState.Closed;\r
-                       con._internalStateSync = new object();\r
-                       con._jdbcConnnection = null;\r
-                       con._referencedObjects = new ArrayList();\r
-                       con._syntaxPatterns = null;\r
-                       return con;\r
-               }\r
-\r
-               #endregion\r
-       }\r
-}\r
diff --git a/mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractDBParameter.cs b/mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractDBParameter.cs
deleted file mode 100644 (file)
index 17a4601..0000000
+++ /dev/null
@@ -1,311 +0,0 @@
-//
-// System.Data.ProviderBase.AbstractDbParameter
-//
-// Authors:
-//     Konstantin Triger <kostat@mainsoft.com>
-//     Boris Kirzner <borisk@mainsoft.com>
-//     
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-
-using System;
-using System.Data;
-using System.Data.Common;
-
-using java.sql;
-
-namespace System.Data.ProviderBase
-{
-    public abstract class AbstractDbParameter : DbParameter, IDbDataParameter, ICloneable
-    {
-               #region Fields
-
-               byte _precision;
-               byte _scale;
-               protected DataRowVersion _sourceVersion;
-               private int _jdbcType;
-               bool _isDbTypeSet;
-               bool _isJdbcTypeSet;
-               object _convertedValue;
-
-               string _parameterName;
-               ParameterDirection _direction = ParameterDirection.Input;
-               int _size;
-               object _value;
-               bool _isNullable;
-               int _offset;
-               string _sourceColumn;
-               DbParameterCollection _parent = null;
-
-               #endregion // Fields
-
-               #region Constructors
-
-               [MonoTODO]
-               protected AbstractDbParameter ()
-               {
-               }
-
-               #endregion // Constructors
-
-               #region Properties
-
-               public override ParameterDirection Direction {
-                       get { return _direction; }
-                       set {
-                               if (_direction != value) {
-                                       switch (value) {
-                                                       case ParameterDirection.Input:
-                                                       case ParameterDirection.Output:
-                                                       case ParameterDirection.InputOutput:
-                                                       case ParameterDirection.ReturnValue:
-                                                       {
-                                                               _direction = value;
-                                                               return;
-                                                       }
-                                       }
-                                       throw ExceptionHelper.InvalidParameterDirection (value);
-                               }
-                       }
-               }
-
-               public override bool IsNullable {
-                       get { return _isNullable; }
-                       set { _isNullable = value; }
-               }
-
-               
-               public virtual int Offset {
-                       get { return _offset; }
-                       set { _offset = value; }                        
-               }
-
-               public override string ParameterName {
-                       get {
-                               if (_parameterName == null)
-                                               return String.Empty;
-
-                               return _parameterName;
-                       }
-                       set {
-                               if (_parameterName != value) {
-                                       _parameterName = value;
-                               }
-                       }
-               }
-
-               public override int Size {
-                       get { return _size; }
-
-                       set {
-                               if (_size != value) {
-                                       if (value < -1)
-                                               throw ExceptionHelper.InvalidSizeValue (value);
-
-                                       _size = value;
-                               }
-                       }
-               }
-
-               
-               public override string SourceColumn {
-                       get { 
-                               if (_sourceColumn == null)
-                                       return String.Empty;
-
-                               return _sourceColumn;
-                       }
-
-                       set     { _sourceColumn = value; }
-               }
-
-               internal DbParameterCollection Parent
-               {
-                       get { return _parent; }
-                       set { _parent = value; }
-               }
-               
-               public byte Precision 
-               { 
-                       get { return _precision; }
-                       set { _precision = value; } 
-               }
-
-               public byte Scale 
-               { 
-                       get { return _scale; }
-                       set { _scale = value; } 
-               }
-
-               public override DataRowVersion SourceVersion
-               {
-                       get { return _sourceVersion; }
-                       set { _sourceVersion = value; }
-               }
-
-               protected internal int JdbcType
-               {
-                       get { 
-                               if (!IsJdbcTypeSet) {
-                                       return JdbcTypeFromProviderType();
-                               }
-                               return _jdbcType; 
-                       }
-                       set { 
-                               _jdbcType = value; 
-                               IsJdbcTypeSet = true;
-                       }
-               }
-               
-               protected internal bool IsJdbcTypeSet
-               {
-                       get { 
-                               return _isJdbcTypeSet; 
-                       }
-
-                       set {
-                               _isJdbcTypeSet = value;
-                       }
-               }
-
-               protected internal bool IsDbTypeSet
-               {
-                       get { return _isDbTypeSet; }
-                       set { _isDbTypeSet = value; }
-               }
-
-               protected internal virtual bool IsSpecial {
-                       get {
-                               return false;
-                       }
-               }
-
-               private bool IsFixedLength
-               {
-                       get {
-                               return ((DbType != DbType.AnsiString) && (DbType != DbType.Binary) && 
-                                               (DbType != DbType.String) && (DbType != DbType.VarNumeric));
-                       }
-               }
-
-               protected internal virtual string Placeholder {
-                       get {
-                               return "?";
-                       }
-               }
-
-               internal object ConvertedValue
-               {
-                       get { 
-                               if (_convertedValue == null) {
-                                       object value = Value;
-                                       _convertedValue = ((value != null) && (value != DBNull.Value)) ? ConvertValue(value) : value;
-                               }
-                               return _convertedValue;
-                       }
-               }
-
-               public override object Value {
-                       get { return _value; }
-                       set { 
-                               _convertedValue = null;
-                               _value = value;
-                       }
-               }
-
-               //DbParameter overrides
-
-               public override bool SourceColumnNullMapping {
-                       get {
-                               throw new NotImplementedException();
-                       }
-                       set {
-                               throw new NotImplementedException();
-                       }
-               }
-
-
-               #endregion // Properties
-
-               #region Methods
-
-               public override String ToString()
-        {
-            return ParameterName;
-        }
-
-               protected internal abstract void SetParameterName(ResultSet res);
-
-               protected internal abstract void SetParameterDbType(ResultSet res);
-
-               protected internal abstract void SetSpecialFeatures(ResultSet res);
-               
-               public virtual object Clone()
-               {
-                       AbstractDbParameter other = (AbstractDbParameter) MemberwiseClone ();
-                       other._parent = null;
-                       return other;
-               }
-
-               protected internal abstract int JdbcTypeFromProviderType();
-
-               protected internal abstract object ConvertValue(object value);
-
-               internal void SetParameterPrecisionAndScale(ResultSet res)
-               {
-                       int jdbcType = res.getInt("DATA_TYPE");
-                       if(jdbcType == java.sql.Types.DECIMAL || jdbcType == java.sql.Types.NUMERIC) {
-                               Precision = (byte)res.getInt("PRECISION");
-                               Scale = (byte)res.getInt("SCALE");
-                       }
-               }
-
-               internal void SetParameterSize(ResultSet res)
-               {
-                       Size = res.getInt("LENGTH");
-               }
-
-               internal void SetParameterIsNullable(ResultSet res)
-               {
-                       IsNullable = (res.getInt("NULLABLE") == 1);
-               }
-
-               internal void Validate()
-               {
-                       if (!IsFixedLength && ((Direction & ParameterDirection.Output) != 0) && (Size == 0)) {
-                               throw ExceptionHelper.ParameterSizeNotInitialized(Offset,ParameterName,DbType.ToString(),Size); 
-                       }
-               }
-
-               //DbParameter overrides
-
-               public override void ResetDbType() {
-                       throw new NotImplementedException();
-               }
-
-               #endregion // Methods
-       }
-}
-
diff --git a/mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractDataReader.cs b/mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractDataReader.cs
deleted file mode 100644 (file)
index 6b69782..0000000
+++ /dev/null
@@ -1,1335 +0,0 @@
-//\r
-// System.Data.Common.AbstractDataReader\r
-//\r
-// Authors:\r
-//     Konstantin Triger <kostat@mainsoft.com>\r
-//     Boris Kirzner <borisk@mainsoft.com>\r
-//     \r
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)\r
-//\r
-\r
-//\r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-// \r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-//\r
-\r
-\r
-using System;\r
-using System.Data;\r
-using System.Collections;\r
-using System.Data.Common;\r
-\r
-using java.io;\r
-using java.sql;\r
-\r
-namespace System.Data.ProviderBase\r
-{\r
-       public abstract class AbstractDataReader : DbDataReader, ISafeDataRecord {\r
-\r
-               #region Fields\r
-\r
-               private ResultSetMetaData _resultsMetaData;\r
-               protected AbstractDbCommand _command;\r
-               private DataTable _schemaTable;\r
-               private ReaderState _readerState = ReaderState.Uninitialized;\r
-\r
-               private IReaderCacheContainer[] _readerCache;\r
-               private int _currentCacheFilledPosition; \r
-               private Stack _resultSetStack = new Stack();\r
-               private bool _isClosed = false;\r
-\r
-               [Flags]\r
-               private enum ReaderState { Uninitialized = 0, Empty = 1, HasRows = 2, FirstRed = 4, Eof = 8, Fetching = 16 };\r
-\r
-               protected internal enum SCHEMA_TABLE { ColumnName,\r
-                       ColumnOrdinal,\r
-                       ColumnSize,\r
-                       NumericPrecision,\r
-                       NumericScale,\r
-                       IsUnique,\r
-                       IsKey,\r
-                       BaseServerName,\r
-                       BaseCatalogName,\r
-                       BaseColumnName,\r
-                       BaseSchemaName,\r
-                       BaseTableName,\r
-                       DataType,\r
-                       AllowDBNull,\r
-                       ProviderType,\r
-                       IsAliased,\r
-                       IsExpression,\r
-                       IsIdentity,\r
-                       IsAutoIncrement,\r
-                       IsRowVersion,\r
-                       IsHidden,\r
-                       IsLong,\r
-                       IsReadOnly};\r
-\r
-               #endregion // Fields\r
-\r
-               #region Constructors\r
-               \r
-               protected AbstractDataReader(AbstractDbCommand command) {\r
-                       _command = command;\r
-                       if (_command.Connection != null) {\r
-                               ((AbstractDBConnection)_command.Connection).AddReference(this);\r
-                       }\r
-               }\r
-\r
-               #endregion // Constructors\r
-\r
-               #region Properties\r
-\r
-               public override int Depth {\r
-                       get { return 0; }\r
-               }\r
-\r
-               public override bool HasRows {\r
-                       get {\r
-                               if (IsClosed) {\r
-                                       throw new InvalidOperationException("Invalid attempt to HasRows when reader is closed.");\r
-                               }\r
-\r
-                               try {\r
-                                       if(null == Results)\r
-                                               return false;\r
-                               }\r
-                               catch(SystemException) {\r
-                                       //suppress\r
-                                       return false;\r
-                               }\r
-\r
-                               return (_readerState & ReaderState.HasRows) != 0;\r
-                       }\r
-               }\r
-\r
-               public override int RecordsAffected\r
-               {\r
-                       // MSDN : The RecordsAffected property is not set \r
-                       // until all rows are read and you close the reader.\r
-                       get { \r
-                               return _command.RecordsAffected; \r
-                       }\r
-               }\r
-\r
-               public override int FieldCount\r
-               {\r
-                       get {\r
-                               if (ResultsMetaData == null)\r
-                                       return 0;\r
-\r
-                               try {\r
-                                       return ResultsMetaData.getColumnCount();\r
-                               }\r
-                               catch (SQLException exp) {\r
-                                       throw CreateException(exp);\r
-                               }\r
-\r
-                       }\r
-               }\r
-\r
-               protected internal CommandBehavior Behavior\r
-               {\r
-                       get {\r
-                               return _command.Behavior;\r
-                       }\r
-               }\r
-\r
-               public override Object this[String columnName]\r
-               {\r
-                       get {\r
-                               try {\r
-                                       int columnIndex = Results.findColumn(columnName) - 1;\r
-                                       return this[columnIndex];\r
-                               }\r
-                               catch (SQLException exp) {\r
-                                       throw new IndexOutOfRangeException(exp.Message, exp);\r
-                               }                               \r
-                       }\r
-               }\r
-\r
-               public override Object this[int columnIndex]\r
-               {\r
-                       get { return GetValue(columnIndex); }\r
-               }\r
-\r
-               protected ResultSet Results\r
-               {\r
-                       get {\r
-                               if (_readerState == ReaderState.Uninitialized) {\r
-\r
-                                       if (_resultSetStack.Count == 0) {\r
-                                               ResultSet resultSet =  _command.CurrentResultSet;\r
-                                               if (resultSet == null)\r
-                                                       return null;\r
-\r
-                                               _resultSetStack.Push(resultSet);\r
-                                       }\r
-\r
-                                       _readerState = ReaderState.Fetching;\r
-                                       for (;;) {\r
-                                               try {\r
-                                                       Configuration.BooleanSetting prefetchSchema = Configuration.Switches.PrefetchSchema;\r
-\r
-                                                       if (prefetchSchema == Configuration.BooleanSetting.NotSet) {\r
-                                                               AbstractDBConnection conn = (AbstractDBConnection)((ICloneable)_command.Connection);\r
-                                                               string driverName = conn.JdbcConnection.getMetaData().getDriverName();\r
-                                                               if (driverName.IndexOf("DB2", StringComparison.Ordinal) >= 0)\r
-                                                                       prefetchSchema = Configuration.BooleanSetting.True;\r
-                                                       }\r
-\r
-                                                       if (prefetchSchema == Configuration.BooleanSetting.True)\r
-                                                               GetSchemaTable();\r
-\r
-                                                       ResultSet resultSet = (ResultSet)_resultSetStack.Peek();\r
-                                                       if (resultSet.next()) {\r
-                                                               _readerState = (ReaderState.HasRows | ReaderState.FirstRed);\r
-                                                               ResultSetMetaData rsMetaData = ResultsMetaData;\r
-                                                               DbConvert.JavaSqlTypes javaSqlType = (DbConvert.JavaSqlTypes)rsMetaData.getColumnType(1);\r
-                                                               if (javaSqlType == DbConvert.JavaSqlTypes.OTHER) {\r
-                                                                       object value = GetValue(0);\r
-                                                                       if (value != null && value is ResultSet) {\r
-                                                                               _resultsMetaData = null;\r
-                                                                               _readerCache = null;\r
-                                                                               SchemaTable = null;\r
-                                                                               _readerState = ReaderState.Fetching;\r
-                                                                               _resultSetStack.Push(value);\r
-                                                                               continue;\r
-                                                                       }\r
-                                                               }\r
-                                                       }\r
-                                                       else\r
-                                                               _readerState = ReaderState.Empty;\r
-\r
-                                                       break;\r
-                                               }\r
-                                               catch(SQLException e) {\r
-                                                       throw CreateException(e);\r
-                                               }\r
-                                       }\r
-                               }\r
-\r
-                               return (_resultSetStack.Count > 0) ? (ResultSet)_resultSetStack.Peek() : null;\r
-                       }\r
-               }\r
-\r
-               protected ResultSetMetaData ResultsMetaData\r
-               {\r
-                       get {\r
-                               ResultSet results = Results;\r
-                               if (results == null) {\r
-                                       return null;\r
-                               }\r
-                               if(_resultsMetaData == null) {\r
-                                       _resultsMetaData = results.getMetaData();\r
-                               }\r
-                               return _resultsMetaData;\r
-                       }                       \r
-               }\r
-\r
-               protected DataTable SchemaTable\r
-               {\r
-                       get {\r
-                               if (_schemaTable == null) {\r
-                                       _schemaTable = ConstructSchemaTable();\r
-                               }\r
-                               return _schemaTable;\r
-                       }\r
-\r
-                       set {_schemaTable = value; }\r
-               }\r
-\r
-               internal protected IReaderCacheContainer[] ReaderCache\r
-               {\r
-                       get {\r
-                               if (_readerCache == null) {\r
-                                       _readerCache = CreateReaderCache();\r
-                                       _currentCacheFilledPosition = -1;\r
-                               }\r
-                               return _readerCache;\r
-                       }\r
-               }\r
-\r
-               public override bool IsClosed {\r
-                       get { return _isClosed; }\r
-               }\r
-\r
-               #endregion // Properties\r
-\r
-               #region Methods\r
-\r
-               protected abstract int GetProviderType(int jdbcType);\r
-\r
-               protected abstract SystemException CreateException(string message, SQLException e);\r
-\r
-               protected abstract SystemException CreateException(IOException e);\r
-\r
-               protected SystemException CreateException(SQLException e)\r
-               {\r
-                       return CreateException(e.Message,e);    \r
-               }\r
-\r
-               private bool CloseCurrentResultSet() {\r
-                       if (_resultSetStack.Count > 0) {\r
-                               try{\r
-                                       _resultsMetaData = null;\r
-                                       _readerCache = null;\r
-                                       _readerState = ReaderState.Uninitialized;\r
-                                       ResultSet rs = (ResultSet)_resultSetStack.Pop();\r
-                                       rs.close();\r
-                                       return true;\r
-                               }\r
-                               catch (SQLException exp) {\r
-                                       throw CreateException(exp);\r
-                               }\r
-                       }\r
-\r
-                       return false;\r
-               }\r
-\r
-               // FIXME : add Close(bool readAllRecords) and pass this bool to skip looping over NextResult(), override AbstractDbCommand.ExecuteScalar\r
-               public override void Close()\r
-               {\r
-                       if (IsClosed)\r
-                               return;\r
-\r
-                       try {\r
-                               CloseCurrentResultSet();\r
-                               _command.OnReaderClosed(this);\r
-                       }\r
-                       finally {\r
-                               CloseInternal();\r
-                       }\r
-               }\r
-\r
-               internal void CloseInternal()\r
-               {\r
-                       _resultsMetaData = null;\r
-                       _readerCache = null;\r
-                       _isClosed = true;\r
-               }\r
-\r
-               public override IEnumerator GetEnumerator ()\r
-               {\r
-                       bool closeReader = (Behavior & CommandBehavior.CloseConnection) != 0;\r
-                       return new DbEnumerator (this , closeReader);\r
-               }\r
-\r
-               public override bool NextResult()\r
-               {\r
-                       CloseCurrentResultSet();\r
-\r
-                       if ((_command.Behavior & CommandBehavior.SingleResult) != 0) {\r
-                               while (CloseCurrentResultSet());\r
-                               while (_command.NextResultSet());\r
-                               return false;\r
-                       }\r
-\r
-                       try {\r
-                               while (_resultSetStack.Count > 0) {\r
-                                       ResultSet rs = (ResultSet)_resultSetStack.Peek();\r
-\r
-                                       if(!rs.next()) {\r
-                                               CloseCurrentResultSet();\r
-                                               continue;\r
-                                       }\r
-\r
-                                       // must be a ResultSet\r
-                                       object childRs = rs.getObject(1);\r
-                                       if (childRs != null) {\r
-                                               SchemaTable = null;\r
-                                               _resultSetStack.Push(childRs);\r
-                                               return true;\r
-                                       }\r
-                               }\r
-                       }\r
-                       catch (SQLException exp) {\r
-                               throw CreateException(exp);\r
-                       }\r
-                               \r
-                       if (_command.NextResultSet()) {\r
-                               SchemaTable = null;     \r
-                               return true;\r
-                       }\r
-                       return false;\r
-               }\r
-\r
-               public override bool Read()\r
-               {\r
-                       if(null == Results ||\r
-                               (_readerState & (ReaderState.HasRows | ReaderState.Eof)) != ReaderState.HasRows)\r
-                               return false;\r
-\r
-                       bool firstRead = false;\r
-\r
-                       try {\r
-                               if ((_readerState & ReaderState.FirstRed) != 0) {\r
-                                       firstRead = true;\r
-                                       _readerState &= ~ReaderState.FirstRed;\r
-                                       return true;\r
-                               }\r
-                               else {\r
-                                       bool next = Results.next();\r
-\r
-                                       if (!next)\r
-                                               _readerState |= ReaderState.Eof;\r
-\r
-                                       return next;\r
-                               }\r
-                       }                       \r
-                       catch (SQLException exp) {\r
-                               // suppress exception as .Net does\r
-                               return false;\r
-                       }\r
-                       finally {\r
-                               // in case of first read we could sampled the first value\r
-                               // to see whether there is a resultset, so _currentCacheFilledPosition\r
-                               // might be already inited\r
-                               if (!firstRead)\r
-                                       _currentCacheFilledPosition = -1;\r
-                       }\r
-               }\r
-\r
-               public override bool GetBoolean(int columnIndex)\r
-               {\r
-                       FillReaderCache(columnIndex);\r
-                       return ((BooleanReaderCacheContainer)ReaderCache[columnIndex]).GetBoolean();\r
-               }\r
-\r
-               public bool GetBooleanSafe(int columnIndex)\r
-               {\r
-                       if (ReaderCache[columnIndex] is BooleanReaderCacheContainer) {\r
-                               return GetBoolean(columnIndex);\r
-                       }\r
-                       else {\r
-                               return Convert.ToBoolean(GetValue(columnIndex));\r
-                       }\r
-               }\r
-\r
-               public override byte GetByte(int columnIndex)\r
-               {\r
-                       FillReaderCache(columnIndex);\r
-                       return ((ByteReaderCacheContainer)ReaderCache[columnIndex]).GetByte();\r
-               }\r
-\r
-               public byte GetByteSafe(int columnIndex)\r
-               {\r
-                       if (ReaderCache[columnIndex] is ByteReaderCacheContainer) {\r
-                               return GetByte(columnIndex);\r
-                       }\r
-                       else {\r
-                               return Convert.ToByte(GetValue(columnIndex));\r
-                       }\r
-               }\r
-\r
-               public override long GetBytes(\r
-                       int columnIndex,\r
-                       long dataIndex,\r
-                       byte[] buffer,\r
-                       int bufferIndex,\r
-                       int length)\r
-               {\r
-                       FillReaderCache(columnIndex);\r
-                       return ((BytesReaderCacheContainer)ReaderCache[columnIndex])\r
-                               .GetBytes(dataIndex, buffer, bufferIndex, length);\r
-               }\r
-\r
-               public virtual byte[] GetBytes(int columnIndex)\r
-               {\r
-                       FillReaderCache(columnIndex);\r
-                       return ((BytesReaderCacheContainer)ReaderCache[columnIndex]).GetBytes();\r
-               }\r
-\r
-               public override char GetChar(int columnIndex)\r
-               {\r
-                       FillReaderCache(columnIndex);\r
-                       string s = ((StringReaderCacheContainer)ReaderCache[columnIndex]).GetString();\r
-                       if(s == null) {\r
-                               return '\0';\r
-                       }\r
-                       return s[0];\r
-               }\r
-\r
-               public char GetCharSafe(int columnIndex)\r
-               {\r
-                       if (ReaderCache[columnIndex] is StringReaderCacheContainer) {\r
-                               return GetChar(columnIndex);\r
-                       }\r
-                       else {\r
-                               return Convert.ToChar(GetValue(columnIndex));\r
-                       }\r
-               }\r
-\r
-               public override long GetChars(\r
-                       int columnIndex,\r
-                       long dataIndex,\r
-                       char[] buffer,\r
-                       int bufferIndex,\r
-                       int length)\r
-               {\r
-                       FillReaderCache(columnIndex);\r
-                       return ((CharsReaderCacheContainer)ReaderCache[columnIndex])\r
-                               .GetChars(dataIndex, buffer, bufferIndex, length);\r
-               }\r
-\r
-               public override string GetDataTypeName(int columnIndex)\r
-               {\r
-                       try {\r
-                               if (ResultsMetaData == null) {\r
-                                       return String.Empty;\r
-                               }\r
-                               return ResultsMetaData.getColumnTypeName(columnIndex + 1);\r
-                       }\r
-                       catch (SQLException exp) {\r
-                               throw CreateException(exp);\r
-                       }\r
-               }\r
-\r
-               public override DateTime GetDateTime(int columnIndex)\r
-               {\r
-                       return GetDateTimeUnsafe(columnIndex);\r
-               }\r
-\r
-               DateTime GetDateTimeUnsafe(int columnIndex)\r
-               {\r
-                       FillReaderCache(columnIndex);\r
-                       return ((DateTimeReaderCacheContainer)ReaderCache[columnIndex]).GetDateTime();\r
-               }\r
-\r
-               public DateTime GetDateTimeSafe(int columnIndex)\r
-               {\r
-                       if (ReaderCache[columnIndex] is DateTimeReaderCacheContainer) {\r
-                               return GetDateTimeUnsafe(columnIndex);\r
-                       }\r
-                       else {\r
-                               return Convert.ToDateTime(GetValue(columnIndex));\r
-                       }\r
-               }\r
-\r
-               public virtual TimeSpan GetTimeSpan(int columnIndex)\r
-               {\r
-                       FillReaderCache(columnIndex);\r
-                       return ((TimeSpanReaderCacheContainer)ReaderCache[columnIndex]).GetTimeSpan();\r
-               }\r
-\r
-               public override Guid GetGuid(int columnIndex)\r
-               {\r
-                       FillReaderCache(columnIndex);\r
-                       return ((GuidReaderCacheContainer)ReaderCache[columnIndex]).GetGuid();\r
-               }\r
-\r
-               public override decimal GetDecimal(int columnIndex)\r
-               {\r
-                       return GetDecimalUnsafe(columnIndex);\r
-               }\r
-\r
-               decimal GetDecimalUnsafe(int columnIndex)\r
-               {\r
-                       FillReaderCache(columnIndex);\r
-                       return ((DecimalReaderCacheContainer)ReaderCache[columnIndex]).GetDecimal();\r
-               }\r
-\r
-               public decimal GetDecimalSafe(int columnIndex)\r
-               {\r
-                       if (ReaderCache[columnIndex] is DecimalReaderCacheContainer) {\r
-                               return GetDecimalUnsafe(columnIndex);\r
-                       }\r
-                       else {\r
-                               return Convert.ToDecimal(GetValue(columnIndex));\r
-                       }\r
-               }\r
-\r
-               public override double GetDouble(int columnIndex)\r
-               {\r
-                       return GetDoubleUnsafe(columnIndex);\r
-               }\r
-\r
-               double GetDoubleUnsafe(int columnIndex)\r
-               {\r
-                       FillReaderCache(columnIndex);\r
-                       return ((DoubleReaderCacheContainer)ReaderCache[columnIndex]).GetDouble();\r
-               }\r
-\r
-               public double GetDoubleSafe(int columnIndex)\r
-               {\r
-                       if (ReaderCache[columnIndex] is DoubleReaderCacheContainer) {\r
-                               return GetDoubleUnsafe(columnIndex);\r
-                       }\r
-                       else {\r
-                               return Convert.ToDouble(GetValue(columnIndex));\r
-                       }\r
-               }\r
-\r
-               public override float GetFloat(int columnIndex)\r
-               {\r
-                       return GetFloatUnsafe(columnIndex);\r
-               }\r
-\r
-               float GetFloatUnsafe(int columnIndex)\r
-               {\r
-                       FillReaderCache(columnIndex);\r
-                       return ((FloatReaderCacheContainer)ReaderCache[columnIndex]).GetFloat();\r
-               }\r
-\r
-               public float GetFloatSafe(int columnIndex)\r
-               {\r
-                       if (ReaderCache[columnIndex] is FloatReaderCacheContainer) {\r
-                               return GetFloatUnsafe(columnIndex);\r
-                       }\r
-                       else {\r
-                               return Convert.ToSingle(GetValue(columnIndex));\r
-                       }\r
-               }\r
-\r
-               public override short GetInt16(int columnIndex)\r
-               {\r
-                       return GetInt16Unsafe(columnIndex);\r
-               }\r
-\r
-               short GetInt16Unsafe(int columnIndex)\r
-               {\r
-                       FillReaderCache(columnIndex);\r
-                       return ((Int16ReaderCacheContainer)ReaderCache[columnIndex]).GetInt16();\r
-               }\r
-\r
-               public short GetInt16Safe(int columnIndex)\r
-               {\r
-                       if (ReaderCache[columnIndex] is Int16ReaderCacheContainer) {\r
-                               return GetInt16Unsafe(columnIndex);\r
-                       }\r
-                       else {\r
-                               return Convert.ToInt16(GetValue(columnIndex));\r
-                       }\r
-               }\r
-\r
-               public override int GetInt32(int columnIndex)\r
-               {\r
-                       return GetInt32Unsafe(columnIndex);\r
-               }\r
-\r
-               int GetInt32Unsafe(int columnIndex)\r
-               {\r
-                       FillReaderCache(columnIndex);\r
-                       return ((Int32ReaderCacheContainer)ReaderCache[columnIndex]).GetInt32();\r
-               }\r
-\r
-               public int GetInt32Safe(int columnIndex)\r
-               {\r
-                       if (ReaderCache[columnIndex] is Int32ReaderCacheContainer) {\r
-                               return GetInt32Unsafe(columnIndex);\r
-                       }\r
-                       else {\r
-                               return Convert.ToInt32(GetValue(columnIndex));\r
-                       }\r
-               }\r
-\r
-               public override long GetInt64(int columnIndex)\r
-               {\r
-                       return GetInt64Unsafe(columnIndex);\r
-               }\r
-\r
-               long GetInt64Unsafe(int columnIndex)\r
-               {\r
-                       FillReaderCache(columnIndex);\r
-                       return ((Int64ReaderCacheContainer)ReaderCache[columnIndex]).GetInt64();\r
-               }\r
-\r
-               public long GetInt64Safe(int columnIndex)\r
-               {\r
-                       if (ReaderCache[columnIndex] is Int64ReaderCacheContainer) {\r
-                               return GetInt64Unsafe(columnIndex);\r
-                       }\r
-                       else {\r
-                               return Convert.ToInt64(GetValue(columnIndex));\r
-                       }\r
-               }\r
-\r
-               public override string GetName(int columnIndex)\r
-               {\r
-                       try {\r
-                               if (ResultsMetaData == null) {\r
-                                       return String.Empty;\r
-                               }\r
-                               return ResultsMetaData.getColumnName(columnIndex + 1);\r
-                       }\r
-                       catch (SQLException exp) {\r
-                               throw new IndexOutOfRangeException(exp.Message, exp);\r
-                       }\r
-               }\r
-\r
-               public override int GetOrdinal(String columnName)\r
-               {\r
-                       try {\r
-                               int retVal = Results.findColumn(columnName);\r
-                               if(retVal != -1) {\r
-                                       retVal -= 1;\r
-                               }\r
-                               return  retVal;\r
-                       }\r
-                       catch (SQLException exp) {\r
-                               throw new IndexOutOfRangeException(exp.Message, exp);\r
-                       }\r
-               }\r
-\r
-               public override string GetString(int columnIndex)\r
-               {\r
-                       return GetStringUnsafe(columnIndex);\r
-               }\r
-\r
-               string GetStringUnsafe(int columnIndex)\r
-               {\r
-                       FillReaderCache(columnIndex);\r
-                       return ((StringReaderCacheContainer)ReaderCache[columnIndex]).GetString();\r
-               }\r
-\r
-               public string GetStringSafe(int columnIndex) {\r
-                       if (ReaderCache[columnIndex] is StringReaderCacheContainer) {\r
-                               return GetStringUnsafe(columnIndex);\r
-                       }\r
-                       else {\r
-                               return Convert.ToString(GetValue(columnIndex));\r
-                       }\r
-               }\r
-\r
-               public override object GetValue(int columnIndex)\r
-               {\r
-                       FillReaderCache(columnIndex);\r
-                       if (ReaderCache[columnIndex].IsNull()) {\r
-                               return DBNull.Value;\r
-                       }\r
-                       return ReaderCache[columnIndex].GetValue();\r
-               }\r
-\r
-               public override int GetValues(Object[] values)\r
-               {       \r
-                       int columnCount = FieldCount;\r
-                       int i = 0;\r
-                       for (; i < values.Length && i < columnCount; i++) {\r
-                               values[i] = GetValue(i);\r
-                       }\r
-                       return i;\r
-               }\r
-\r
-               private void FillReaderCache(int columnIndex)\r
-               {\r
-                       try {\r
-                               IReaderCacheContainer[] readerCache = ReaderCache;\r
-                               if ((Behavior & CommandBehavior.SequentialAccess) == 0) {                                       \r
-                                       while (_currentCacheFilledPosition < columnIndex) {\r
-                                               _currentCacheFilledPosition++;\r
-                                               readerCache[_currentCacheFilledPosition].Fetch(Results,_currentCacheFilledPosition, false);\r
-                                       }                                       \r
-                               }\r
-                               else {\r
-                                       readerCache[columnIndex].Fetch(Results,columnIndex, true);\r
-                               }\r
-                       }\r
-                       catch(SQLException e) {\r
-                               _currentCacheFilledPosition = -1;\r
-                               throw CreateException(e);\r
-                       }\r
-                       catch (IOException e) {\r
-                               _currentCacheFilledPosition = -1;\r
-                               throw CreateException(e);\r
-                       }\r
-               }\r
-\r
-               protected virtual IReaderCacheContainer CreateReaderCacheContainer(int jdbcType, int columnIndex) {\r
-                       switch ((DbConvert.JavaSqlTypes)jdbcType) {\r
-                               case DbConvert.JavaSqlTypes.ARRAY :\r
-                                       return new ArrayReaderCacheContainer();\r
-                               case DbConvert.JavaSqlTypes.BIGINT :\r
-                                       return new Int64ReaderCacheContainer();\r
-                               case DbConvert.JavaSqlTypes.BINARY :\r
-                               case DbConvert.JavaSqlTypes.VARBINARY :\r
-                               case DbConvert.JavaSqlTypes.LONGVARBINARY :\r
-                                       return new BytesReaderCacheContainer();\r
-                               case DbConvert.JavaSqlTypes.BIT :\r
-                                       return new BooleanReaderCacheContainer();\r
-                               case DbConvert.JavaSqlTypes.BLOB :\r
-                                       return new BlobReaderCacheContainer();\r
-                               case DbConvert.JavaSqlTypes.VARCHAR:\r
-                               case DbConvert.JavaSqlTypes.CHAR :                                              \r
-                                       if (String.CompareOrdinal("uniqueidentifier", ResultsMetaData.getColumnTypeName(columnIndex)) == 0) {\r
-                                               return new GuidReaderCacheContainer();\r
-                                       }\r
-                                       else {\r
-                                               return new StringReaderCacheContainer();\r
-                                       }\r
-                               case DbConvert.JavaSqlTypes.CLOB :\r
-                                       return new ClobReaderCacheContainer();\r
-                               case DbConvert.JavaSqlTypes.TIME :\r
-                                       return new TimeSpanReaderCacheContainer();\r
-                               case DbConvert.JavaSqlTypes.DATE :\r
-                                       AbstractDBConnection conn = (AbstractDBConnection)((ICloneable)_command.Connection);\r
-                                       string driverName = conn.JdbcConnection.getMetaData().getDriverName();\r
-\r
-                                       if (driverName.StartsWith("PostgreSQL")) {\r
-                                               return new DateTimeReaderCacheContainer();\r
-                                       }\r
-                                       else\r
-                                               goto case DbConvert.JavaSqlTypes.TIMESTAMP;\r
-                               case DbConvert.JavaSqlTypes.TIMESTAMP :                         \r
-                                       return new TimestampReaderCacheContainer();\r
-                               case DbConvert.JavaSqlTypes.DECIMAL :\r
-                               case DbConvert.JavaSqlTypes.NUMERIC :\r
-                                       // jdbc driver for oracle identitfies both FLOAT and NUMBEr columns as \r
-                                       // java.sql.Types.NUMERIC (2), columnTypeName NUMBER, columnClassName java.math.BigDecimal \r
-                                       // therefore we relay on scale\r
-                                       int scale = ResultsMetaData.getScale(columnIndex);\r
-                                       if (scale == -127) {\r
-                                               // Oracle db type FLOAT\r
-                                               return new DoubleReaderCacheContainer();\r
-                                       }\r
-                                       else {\r
-                                               return new DecimalReaderCacheContainer();\r
-                                       }\r
-                               case DbConvert.JavaSqlTypes.DOUBLE :\r
-                               case DbConvert.JavaSqlTypes.FLOAT :\r
-                                       return new DoubleReaderCacheContainer();\r
-                               case DbConvert.JavaSqlTypes.INTEGER :\r
-                                       return new Int32ReaderCacheContainer();\r
-                               case DbConvert.JavaSqlTypes.LONGVARCHAR :\r
-                                       return new StringReaderCacheContainer();\r
-                               case DbConvert.JavaSqlTypes.NULL :\r
-                                       return new NullReaderCacheContainer();\r
-                               case DbConvert.JavaSqlTypes.REAL :\r
-                                       return new FloatReaderCacheContainer();\r
-                               case DbConvert.JavaSqlTypes.REF :\r
-                                       return new RefReaderCacheContainer();\r
-                               case DbConvert.JavaSqlTypes.SMALLINT :\r
-                                       return new Int16ReaderCacheContainer();\r
-                               case DbConvert.JavaSqlTypes.TINYINT :\r
-                                       return new ByteReaderCacheContainer();\r
-                               case DbConvert.JavaSqlTypes.DISTINCT :\r
-                               case DbConvert.JavaSqlTypes.JAVA_OBJECT :\r
-                               case DbConvert.JavaSqlTypes.OTHER :\r
-                               case DbConvert.JavaSqlTypes.STRUCT :\r
-                               default :\r
-                                       return new ObjectReaderCacheContainer();\r
-                       }\r
-               }\r
-\r
-               private IReaderCacheContainer[] CreateReaderCache()\r
-               {\r
-                       try {\r
-                               IReaderCacheContainer[] readerCache = new IReaderCacheContainer[FieldCount];\r
-                               for(int i=1; i <= readerCache.Length; i++)\r
-                                       readerCache[i-1] = CreateReaderCacheContainer(ResultsMetaData.getColumnType(i), i);\r
-\r
-                               return readerCache;\r
-                       }\r
-                       catch(SQLException e) {\r
-                               throw CreateException(e);\r
-                       }\r
-               }\r
-\r
-               protected bool IsNumeric(int columnIndex)\r
-               {\r
-                       return ReaderCache[columnIndex].IsNumeric();\r
-               }\r
-\r
-               public override bool IsDBNull(int columnIndex)\r
-               {\r
-                       FillReaderCache(columnIndex);\r
-                       return ReaderCache[columnIndex].IsNull();\r
-               }\r
-\r
-               public override Type GetFieldType(int i)\r
-               {\r
-                       try {\r
-                               int javaSqlType = ResultsMetaData.getColumnType(i + 1);\r
-                               return DbConvert.JavaSqlTypeToClrType(javaSqlType);\r
-                       }\r
-                       catch (SQLException exp) {\r
-                               throw new IndexOutOfRangeException(exp.Message, exp);\r
-                       }\r
-               }\r
-\r
-               public IDataReader GetData(int i)\r
-               {\r
-                       throw new NotSupportedException();\r
-               }\r
-\r
-               protected virtual void SetSchemaType(DataRow schemaRow, ResultSetMetaData metaData, int columnIndex) {\r
-                       DbConvert.JavaSqlTypes columnType = (DbConvert.JavaSqlTypes)metaData.getColumnType(columnIndex);\r
-\r
-                       switch (columnType) {\r
-                               case DbConvert.JavaSqlTypes.ARRAY: {\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = typeof (java.sql.Array);\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       break;\r
-                               }\r
-                               case DbConvert.JavaSqlTypes.BIGINT: {\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = DbTypes.TypeOfInt64;\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       break;\r
-                               }\r
-                               case DbConvert.JavaSqlTypes.BINARY: {\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = DbTypes.TypeOfByteArray;\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = true;\r
-                                       break;\r
-                               }\r
-                               case DbConvert.JavaSqlTypes.BIT: {\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = DbTypes.TypeOfBoolean;\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       break;\r
-                               }\r
-                               case DbConvert.JavaSqlTypes.BLOB: {\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = DbTypes.TypeOfByteArray;\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = true;\r
-                                       break;\r
-                               }\r
-                               case DbConvert.JavaSqlTypes.VARCHAR:\r
-                               case DbConvert.JavaSqlTypes.CHAR: {\r
-                                       // FIXME : specific for Microsoft SQl Server driver\r
-                                       if (String.CompareOrdinal(metaData.getColumnTypeName(columnIndex), "uniqueidentifier") == 0) {\r
-                                               schemaRow [(int)SCHEMA_TABLE.ProviderType] = DbType.Guid;\r
-                                               schemaRow [(int)SCHEMA_TABLE.DataType] = DbTypes.TypeOfGuid;\r
-                                               schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       }\r
-                                       else\r
-                                       if (String.CompareOrdinal(metaData.getColumnTypeName(columnIndex), "sql_variant") == 0) {\r
-                                               schemaRow [(int)SCHEMA_TABLE.ProviderType] = DbType.Object;\r
-                                               schemaRow [(int)SCHEMA_TABLE.DataType] = DbTypes.TypeOfObject;\r
-                                               schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       }\r
-                                       else {\r
-                                               schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                               schemaRow [(int)SCHEMA_TABLE.DataType] = DbTypes.TypeOfString;\r
-                                               schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       }\r
-                                       break;\r
-                               }\r
-                               case DbConvert.JavaSqlTypes.CLOB: {\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = DbTypes.TypeOfString; // instead og .java.sql.Clob\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = true;\r
-                                       break;\r
-                               }\r
-                               case DbConvert.JavaSqlTypes.DATE: {\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = DbTypes.TypeOfDateTime;\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       break;\r
-                               }\r
-                                       //                else if(DbConvert.JavaSqlTypes.DISTINCT)\r
-                                       //                {\r
-                                       //                    schemaRow ["ProviderType = (int)GetProviderType((int)columnType);\r
-                                       //                    schemaRow ["DataType = typeof (?);\r
-                                       //                    schemaRow ["IsLong = false;\r
-                                       //                }\r
-                               case DbConvert.JavaSqlTypes.DOUBLE: {\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = DbTypes.TypeOfDouble; // was typeof(float)\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       break;\r
-                               }\r
-                               case DbConvert.JavaSqlTypes.FLOAT: {\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = DbTypes.TypeOfDouble;\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       break;\r
-                               }\r
-                               case DbConvert.JavaSqlTypes.REAL: {\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = DbTypes.TypeOfFloat;\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       break;\r
-                               }\r
-                               case DbConvert.JavaSqlTypes.INTEGER: {\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = DbTypes.TypeOfInt32;\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       break;\r
-                               }\r
-                               case DbConvert.JavaSqlTypes.JAVA_OBJECT: {\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = DbTypes.TypeOfObject;\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       break;\r
-                               }\r
-                               case DbConvert.JavaSqlTypes.LONGVARBINARY: {\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = DbTypes.TypeOfByteArray;\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = true;\r
-                                       break;\r
-                               }\r
-                               case DbConvert.JavaSqlTypes.LONGVARCHAR: {\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = DbTypes.TypeOfString;\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = true;\r
-                                       break;\r
-                               }\r
-                               case DbConvert.JavaSqlTypes.DECIMAL:\r
-                               case DbConvert.JavaSqlTypes.NUMERIC: {\r
-                                       int scale = ResultsMetaData.getScale(columnIndex);\r
-                                       if (scale == -127) {\r
-                                               schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                               schemaRow [(int)SCHEMA_TABLE.DataType] = DbTypes.TypeOfDouble;\r
-                                               schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       }\r
-                                       else {\r
-                                               schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                               schemaRow [(int)SCHEMA_TABLE.DataType] = DbTypes.TypeOfDecimal;\r
-                                               schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       }\r
-                                       break;\r
-                               }\r
-                               case DbConvert.JavaSqlTypes.REF: {\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = typeof (java.sql.Ref);\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = true;\r
-                                       break;\r
-                               }\r
-                               case DbConvert.JavaSqlTypes.SMALLINT: {\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = DbTypes.TypeOfInt16;\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       break;\r
-                               }\r
-                               case DbConvert.JavaSqlTypes.STRUCT: {\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = typeof (java.sql.Struct);\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       break;\r
-                               }\r
-                               case DbConvert.JavaSqlTypes.TIME: {\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = DbTypes.TypeOfTimespan;\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       break;\r
-                               }\r
-                               case DbConvert.JavaSqlTypes.TIMESTAMP: {\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = DbTypes.TypeOfDateTime;\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       break;\r
-                               }\r
-                               case DbConvert.JavaSqlTypes.TINYINT: {\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = DbTypes.TypeOfByte;\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
-                                       break;\r
-                               }\r
-                               case DbConvert.JavaSqlTypes.VARBINARY: {\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = DbTypes.TypeOfByteArray;\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = true;\r
-                                       break;\r
-                               }\r
-                               default: {\r
-                                       schemaRow [(int)SCHEMA_TABLE.ProviderType] = DbType.Object;\r
-                                       schemaRow [(int)SCHEMA_TABLE.DataType] = DbTypes.TypeOfObject;\r
-                                       schemaRow [(int)SCHEMA_TABLE.IsLong] = true;\r
-                                       break;\r
-                               }\r
-                       }\r
-               }\r
-\r
-               public override DataTable GetSchemaTable()\r
-               {\r
-                       if (SchemaTable.Rows != null && SchemaTable.Rows.Count > 0) {\r
-                               return SchemaTable;\r
-                       }\r
-            \r
-                       ResultSetMetaData metaData;                     \r
-                       if (Behavior == CommandBehavior.SchemaOnly) {\r
-                               try {\r
-                                       metaData = ((PreparedStatement)_command.Statement).getMetaData();\r
-                               }\r
-                               catch(SQLException e) {\r
-                                       throw CreateException("CommandBehaviour.SchemaOnly is not supported by the JDBC driver.",e);\r
-                               }\r
-                       }\r
-                       else {\r
-                               metaData = ResultsMetaData;\r
-                       }\r
-\r
-                       if (metaData == null) {\r
-                               return SchemaTable;\r
-                       }\r
-\r
-                       DatabaseMetaData dbMetaData = null;\r
-                       AbstractDBConnection clonedConnection = null;\r
-                       if ((_command.Behavior & CommandBehavior.KeyInfo) != 0) {\r
-                               clonedConnection = (AbstractDBConnection)((ICloneable)_command.Connection).Clone();\r
-\r
-                               try {\r
-                                       clonedConnection.Open();\r
-                                       dbMetaData = clonedConnection.JdbcConnection.getMetaData();\r
-                               }\r
-                               catch {\r
-                                       //suppress\r
-                                       if (clonedConnection != null) {\r
-                                               clonedConnection.Close();\r
-                                       }\r
-                               }                       \r
-                       }\r
-                       \r
-                       try {\r
-                               int tmp;                                \r
-                               for(int i = 1; i <= metaData.getColumnCount(); i++) {\r
-                                       DataRow row = SchemaTable.NewRow ();\r
-                                       string columnName = metaData.getColumnLabel(i);\r
-                                       string baseColumnName = metaData.getColumnName(i);\r
-       \r
-                                       row [(int)SCHEMA_TABLE.ColumnName] = columnName; // maybe we should use metaData.getColumnLabel(i);\r
-                                       row [(int)SCHEMA_TABLE.ColumnSize] = metaData.getColumnDisplaySize(i);\r
-                                       row [(int)SCHEMA_TABLE.ColumnOrdinal]           = i - 1;\r
-                                       try {\r
-                                               // FIXME : workaround for Oracle JDBC driver bug\r
-                                               // getPrecision on BLOB, CLOB, NCLOB throws NumberFormatException\r
-                                               tmp = metaData.getPrecision(i);\r
-                                       }\r
-                                       catch(java.lang.NumberFormatException e) {\r
-                                               // supress exception\r
-                                               tmp = 255;\r
-                                       }\r
-                                       row [(int)SCHEMA_TABLE.NumericPrecision] = Convert.ToInt16(tmp > 255 ? 255 : tmp);\r
-                                       tmp = metaData.getScale(i);\r
-                                       row [(int)SCHEMA_TABLE.NumericScale] = Convert.ToInt16(tmp > 255 ? 255 : tmp);\r
-\r
-                                       row [(int)SCHEMA_TABLE.BaseServerName] = DBNull.Value;\r
-                               \r
-                                       string catalog = null;\r
-                                       try {\r
-                                               catalog = metaData.getCatalogName(i);\r
-                                       }\r
-                                       catch (Exception e) {\r
-                                               // supress exception\r
-                                       }\r
-                                       if (catalog != null && catalog.Length == 0)\r
-                                               catalog =  ((AbstractDBConnection)_command.Connection).JdbcConnection.getCatalog();\r
-                                       row [(int)SCHEMA_TABLE.BaseCatalogName] = catalog;\r
-                                       row [(int)SCHEMA_TABLE.BaseColumnName] = baseColumnName;\r
-\r
-                                       string schemaName;\r
-                                       string tableName;\r
-\r
-                                       try {\r
-                                               tableName = metaData.getTableName(i);\r
-                                       }\r
-                                       catch {\r
-                                               tableName = null;\r
-                                       }\r
-\r
-                                       try {\r
-                                               schemaName = metaData.getSchemaName(i);\r
-                                       }\r
-                                       catch {\r
-                                               schemaName = null;\r
-                                       }\r
-\r
-                                       if (tableName != null && tableName.Length == 0)\r
-                                               tableName = null;\r
-                                       if (schemaName != null && schemaName.Length == 0)\r
-                                               schemaName = null;\r
-\r
-                                       row [(int)SCHEMA_TABLE.BaseSchemaName] = schemaName;\r
-                                       row [(int)SCHEMA_TABLE.BaseTableName] = tableName;\r
-\r
-\r
-                                       row [(int)SCHEMA_TABLE.AllowDBNull] = Convert.ToBoolean(metaData.isNullable(i));\r
-                               \r
-                                       InitKeyInfo(row, dbMetaData, catalog, schemaName, tableName);\r
-                               \r
-                                       row [(int)SCHEMA_TABLE.IsAliased] = columnName != baseColumnName;\r
-                                       row [(int)SCHEMA_TABLE.IsExpression] = false;\r
-\r
-                                       row [(int)SCHEMA_TABLE.IsAutoIncrement] = metaData.isAutoIncrement(i);\r
-\r
-                                       row [(int)SCHEMA_TABLE.IsHidden] = false;\r
-                                       row [(int)SCHEMA_TABLE.IsReadOnly] = metaData.isReadOnly(i);\r
-\r
-                                       SetSchemaType(row, metaData, i);\r
-\r
-                                       SchemaTable.Rows.Add (row);\r
-                               }\r
-                       }\r
-                       catch (SQLException e) {                                \r
-                               throw CreateException(e);\r
-                       }\r
-                       finally {\r
-                               if (clonedConnection != null) {\r
-                                       clonedConnection.Close();\r
-                               }\r
-                       }                       \r
-                       return SchemaTable;\r
-               }\r
-\r
-               private void InitKeyInfo(DataRow row, DatabaseMetaData dbMetaData, String catalog, String schema, String table) {\r
-                       string column = (string)row [(int)SCHEMA_TABLE.BaseColumnName];\r
-\r
-                       row [(int)SCHEMA_TABLE.IsUnique] = false;\r
-                       row [(int)SCHEMA_TABLE.IsKey] = false;\r
-                       row [(int)SCHEMA_TABLE.IsIdentity] = false;\r
-                       row [(int)SCHEMA_TABLE.IsRowVersion] = false;\r
-\r
-                       if ((_command.Behavior & CommandBehavior.KeyInfo) == 0)\r
-                               return;\r
-\r
-                       if(table == null || column == null || dbMetaData == null)\r
-                               return;\r
-\r
-                       ResultSet versionCol = dbMetaData.getVersionColumns(catalog, schema, table);\r
-                       try {\r
-                               while(versionCol.next()) {\r
-                                       if(versionCol.getString("COLUMN_NAME") == column) {\r
-                                               if (DatabaseMetaData__Finals.versionColumnPseudo == versionCol.getShort("PSEUDO_COLUMN")) {\r
-                                                       row [(int)SCHEMA_TABLE.IsIdentity] = true;\r
-                                                       row [(int)SCHEMA_TABLE.IsRowVersion] = true;\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-                       finally {\r
-                               versionCol.close();\r
-                       }\r
-\r
-                       ResultSet primaryKeys = dbMetaData.getPrimaryKeys(catalog,schema,table);\r
-                       bool primaryKeyExists = false;\r
-                       int columnCount = 0;\r
-                       try {\r
-                               while(primaryKeys.next()) {\r
-                                       columnCount++;\r
-                                       if(primaryKeys.getString("COLUMN_NAME") == column) {\r
-                                               row [(int)SCHEMA_TABLE.IsKey] = true;\r
-                                               primaryKeyExists = true;\r
-                                       }\r
-                               }\r
-                               // column constitutes a key by itself, so it should be marked as unique \r
-                               if ((columnCount == 1) && (((bool)row [(int)SCHEMA_TABLE.IsKey]) == true)) {\r
-                                       row [(int)SCHEMA_TABLE.IsUnique] = true;\r
-                               }\r
-                       }\r
-                       finally {\r
-                               primaryKeys.close();\r
-                       }\r
-\r
-                       ResultSet indexInfoRes = dbMetaData.getIndexInfo(catalog,schema,table,true,false);\r
-                       string currentIndexName = null;\r
-                       columnCount = 0;\r
-                       bool belongsToCurrentIndex = false;\r
-                       bool atFirstIndex = true;\r
-                       bool uniqueKeyExists = false;\r
-                       try {\r
-                               while(indexInfoRes.next()) {\r
-                                       if (indexInfoRes.getShort("TYPE") ==  DatabaseMetaData__Finals.tableIndexStatistic) {\r
-                                               // index of type tableIndexStatistic identifies table statistics - ignore it\r
-                                               continue;\r
-                                       }\r
-                                       \r
-                                       uniqueKeyExists = true;\r
-                                       string iname = indexInfoRes.getString("INDEX_NAME");\r
-                                       if (currentIndexName == iname) {\r
-                                               // we're within the rows of the same index \r
-                                               columnCount++;\r
-                                       }\r
-                                       else {\r
-                                               // we jump to row of new index \r
-                                               if (belongsToCurrentIndex && columnCount == 1) {\r
-                                                       // there is a constraint of type UNIQUE that applies only to this column\r
-                                                       row [(int)SCHEMA_TABLE.IsUnique] = true;\r
-                                               }\r
-\r
-                                               if (currentIndexName != null) {\r
-                                                       atFirstIndex = false;\r
-                                               }\r
-                                               currentIndexName = iname;\r
-                                               columnCount = 1;\r
-                                               belongsToCurrentIndex = false;\r
-                                       }\r
-\r
-                                       if(indexInfoRes.getString("COLUMN_NAME") == column) {\r
-                                               // FIXME : this will cause "spare" columns marked as IsKey. Needs future investigation.\r
-                                               // only the first index we met should be marked as a key\r
-                                               //if (atFirstIndex) {\r
-                                                       row [(int)SCHEMA_TABLE.IsKey] = true;\r
-                                               //}\r
-                                               belongsToCurrentIndex = true;                                           \r
-                                       }\r
-                               }\r
-                               // the column appears in the last index, which is single-column\r
-                               if (belongsToCurrentIndex && columnCount == 1) {\r
-                                       // there is a constraint of type UNIQUE that applies only to this column\r
-                                       row [(int)SCHEMA_TABLE.IsUnique] = true;\r
-                               }\r
-                       }\r
-                       finally {\r
-                               indexInfoRes.close();\r
-                       }                       \r
-\r
-                       if(!primaryKeyExists && !uniqueKeyExists) {\r
-                               ResultSet bestRowId = dbMetaData.getBestRowIdentifier(catalog, schema, table, DatabaseMetaData__Finals.bestRowTemporary, false);\r
-                               try {\r
-                                       while(bestRowId.next()) {\r
-                                               if(bestRowId.getString("COLUMN_NAME") == column)\r
-                                                       row [(int)SCHEMA_TABLE.IsKey] = true;\r
-                                       }\r
-                               }\r
-                               finally {\r
-                                       bestRowId.close();\r
-                               }\r
-                       }\r
-               }\r
-\r
-               protected static DataTable ConstructSchemaTable ()\r
-               {\r
-                       Type booleanType = DbTypes.TypeOfBoolean;\r
-                       Type stringType = DbTypes.TypeOfString;\r
-                       Type intType = DbTypes.TypeOfInt32;\r
-                       Type typeType = DbTypes.TypeOfType;\r
-                       Type shortType = DbTypes.TypeOfInt16;\r
-\r
-                       DataTable schemaTable = new DataTable ("SchemaTable");\r
-                       schemaTable.Columns.Add ("ColumnName", stringType);\r
-                       schemaTable.Columns.Add ("ColumnOrdinal", intType);\r
-                       schemaTable.Columns.Add ("ColumnSize", intType);\r
-                       schemaTable.Columns.Add ("NumericPrecision", shortType);\r
-                       schemaTable.Columns.Add ("NumericScale", shortType);\r
-                       schemaTable.Columns.Add ("IsUnique", booleanType);\r
-                       schemaTable.Columns.Add ("IsKey", booleanType);\r
-                       schemaTable.Columns.Add ("BaseServerName", stringType);\r
-                       schemaTable.Columns.Add ("BaseCatalogName", stringType);\r
-                       schemaTable.Columns.Add ("BaseColumnName", stringType);\r
-                       schemaTable.Columns.Add ("BaseSchemaName", stringType);\r
-                       schemaTable.Columns.Add ("BaseTableName", stringType);\r
-                       schemaTable.Columns.Add ("DataType", typeType);\r
-                       schemaTable.Columns.Add ("AllowDBNull", booleanType);\r
-                       schemaTable.Columns.Add ("ProviderType", intType);\r
-                       schemaTable.Columns.Add ("IsAliased", booleanType);\r
-                       schemaTable.Columns.Add ("IsExpression", booleanType);\r
-                       schemaTable.Columns.Add ("IsIdentity", booleanType);\r
-                       schemaTable.Columns.Add ("IsAutoIncrement", booleanType);\r
-                       schemaTable.Columns.Add ("IsRowVersion", booleanType);\r
-                       schemaTable.Columns.Add ("IsHidden", booleanType);\r
-                       schemaTable.Columns.Add ("IsLong", booleanType);\r
-                       schemaTable.Columns.Add ("IsReadOnly", booleanType);\r
-                       return schemaTable;\r
-               }\r
-\r
-               #endregion // Methods\r
-       }\r
-}
\ No newline at end of file
diff --git a/mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractDbError.cs b/mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractDbError.cs
deleted file mode 100644 (file)
index aeeb352..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-//\r
-// System.Data.ProviderBase.AbstractDbError\r
-//
-// Authors:
-//     Konstantin Triger <kostat@mainsoft.com>
-//     Boris Kirzner <borisk@mainsoft.com>
-//     
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//\r
-\r
-\r
-namespace System.Data.ProviderBase {\r
-       using java.sql;\r
-       using System.Data.Common;\r
-\r
-       [Serializable]\r
-       public abstract class AbstractDbError {\r
-               protected SQLException _e;\r
-               string _jdbcProvider;\r
-\r
-               protected AbstractDbError(SQLException e, AbstractDBConnection connection) {\r
-                       _e = e;\r
-                       if (connection != null)\r
-                               _jdbcProvider = connection.JdbcProvider;\r
-               }\r
-    \r
-               protected internal String DbMessage {\r
-                       get {\r
-                               return _e.Message;\r
-                       }\r
-               }\r
-    \r
-               protected int DbErrorCode {\r
-                       get {\r
-                               return _e.getErrorCode();\r
-                       }\r
-               }\r
-    \r
-               protected String DbSource {\r
-                       get {\r
-                               return _jdbcProvider;\r
-                       }\r
-               }\r
-    \r
-               protected String DbSQLState {\r
-                       get {\r
-                               return _e.getSQLState();\r
-                       }\r
-               }\r
-       }\r
-}
\ No newline at end of file
diff --git a/mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractDbErrorCollection.cs b/mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractDbErrorCollection.cs
deleted file mode 100644 (file)
index 5e7fc68..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-//\r
-// System.Data.ProviderBase.AbstractDbErrorCollection\r
-//
-// Authors:
-//     Konstantin Triger <kostat@mainsoft.com>
-//     Boris Kirzner <borisk@mainsoft.com>
-//     
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//\r
-\r
-\r
-namespace System.Data.ProviderBase {\r
-\r
-\r
-       using System.Collections;\r
-       using java.sql;\r
-       using System.Data.Common;\r
-\r
-       [Serializable]\r
-       public abstract class AbstractDbErrorCollection : ICollection, IEnumerable {\r
-               private ArrayList _list;\r
-\r
-               protected AbstractDbErrorCollection(SQLException e, AbstractDBConnection connection) {\r
-                       _list = new ArrayList();\r
-\r
-                       while(e != null) {\r
-                               _list.Add(CreateDbError(e, connection));\r
-                               e = e.getNextException();\r
-                       }\r
-               }\r
-\r
-               protected abstract AbstractDbError CreateDbError(SQLException e, AbstractDBConnection connection);\r
-               /**\r
-                * Gets the error at the specified index.\r
-                *\r
-                * @param index of the error\r
-                * @return Error on specified index\r
-                */\r
-               protected AbstractDbError GetDbItem(int index) {\r
-                       return (AbstractDbError)_list[index];\r
-               }\r
-\r
-               /**\r
-                * Adds new Error to the collection\r
-                *\r
-                * @param value new OleDbError\r
-                */\r
-               public void Add(object value) {\r
-                       _list.Add(value);\r
-               }\r
-        \r
-               public int Count {\r
-                       get {\r
-                               return _list.Count;\r
-                       }\r
-               }\r
-\r
-               public IEnumerator GetEnumerator() {\r
-                       return _list.GetEnumerator();\r
-               }\r
-        \r
-               public void CopyTo(System.Array arr, int index) {\r
-                       _list.CopyTo(arr, index);\r
-               }\r
-\r
-               bool ICollection.IsSynchronized {\r
-                       get {\r
-                               return _list.IsSynchronized;\r
-                       }\r
-               }\r
-\r
-               Object ICollection.SyncRoot {\r
-                       get {\r
-                               return _list.SyncRoot;\r
-                       }\r
-               }\r
-        \r
-       }\r
-}
\ No newline at end of file
diff --git a/mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractDbException.cs b/mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractDbException.cs
deleted file mode 100644 (file)
index 848f05c..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-//\r
-// System.Data.ProviderBase.AbstractDbException\r
-//\r
-// Authors:\r
-//     Konstantin Triger <kostat@mainsoft.com>\r
-//     Boris Kirzner <borisk@mainsoft.com>\r
-//     \r
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)\r
-//\r
-\r
-//\r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-// \r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-//\r
-\r
-\r
-namespace System.Data.ProviderBase {\r
-\r
-       using java.sql;\r
-       using System.Text;\r
-       using System.Data.Common;\r
-\r
-       /*\r
-       * CURRENT LIMITATIONS\r
-       * 1. Constructor for serialization SqlException(SerializationInfo info, StreamingContext sc) \r
-       *    is not supported.\r
-       * 2. Method "void GetObjectData(...,...)" is not supported (serialization)\r
-       */\r
-\r
-       public abstract class AbstractDbException :\r
-#if NET_2_0\r
-               DbException\r
-#else\r
-               System.SystemException\r
-#endif\r
-       {\r
-               protected SQLException _cause;\r
-               protected AbstractDBConnection _connection;\r
-\r
-               protected AbstractDbException(Exception cause, AbstractDBConnection connection) : base(cause.Message, cause) {\r
-                       _connection = connection;\r
-               }\r
-\r
-               protected AbstractDbException(SQLException cause, AbstractDBConnection connection) : this(String.Empty, cause, connection) {}\r
-\r
-               protected AbstractDbException(string message, SQLException cause, AbstractDBConnection connection) : base(message, cause) {\r
-                       _connection = connection;\r
-                       _cause = cause;\r
-               }\r
-\r
-               abstract protected AbstractDbErrorCollection DbErrors { get; }\r
-\r
-               /**\r
-                * Gets the error code of the error.\r
-                * @return The error code of the error.\r
-                */\r
-               protected int DbErrorCode {\r
-                       get {\r
-                               return _cause != null ? _cause.getErrorCode() : 0;\r
-                       }\r
-               }\r
-\r
\r
-               /**\r
-                * Gets the name of the OLE DB provider that generated the error.\r
-                * @return the name of the OLE DB provider that generated the error. \r
-                */\r
-               public override String Source {\r
-                       get {\r
-                               return _connection != null ? _connection.JdbcProvider : null;\r
-                       }\r
-               }\r
-\r
-               public override string Message {\r
-                       get {\r
-                               StringBuilder sb = new StringBuilder();\r
-                               string message = base.Message;\r
-                               bool addNewLine = false;\r
-                               if (message != null && message.Length > 0) {\r
-                                       sb.Append(message);\r
-                                       addNewLine = true;\r
-                               }\r
-\r
-                               foreach (AbstractDbError err in DbErrors) {\r
-                                       if (addNewLine)\r
-                                               sb.Append(Environment.NewLine);\r
-\r
-                                       addNewLine = true;\r
-                                       sb.Append(err.DbMessage);\r
-                               }\r
-                               return sb.ToString();\r
-                       }\r
-               }\r
-\r
-       }\r
-}
\ No newline at end of file
diff --git a/mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractTransaction.cs b/mcs/class/System.Data/System.Data.ProviderBase.jvm/AbstractTransaction.cs
deleted file mode 100644 (file)
index 2c2f25f..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-//\r
-// System.Data.ProviderBase.AbstractTransaction\r
-//\r
-// Authors:\r
-//     Konstantin Triger <kostat@mainsoft.com>\r
-//     Boris Kirzner <borisk@mainsoft.com>\r
-//     \r
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)\r
-//\r
-\r
-//\r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-// \r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-//\r
-\r
-using System.Data.Common;\r
-\r
-namespace System.Data.ProviderBase\r
-{\r
-\r
-    using java.sql;\r
-\r
-    using System.Data;\r
-\r
-    public abstract class AbstractTransaction : DbTransaction\r
-    {\r
-\r
-        protected String _transactionName;\r
-        protected AbstractDBConnection _connection;\r
-\r
-        protected IsolationLevel _isolationLevel;\r
-\r
-        public AbstractTransaction(\r
-            IsolationLevel isolationLevel,\r
-            AbstractDBConnection connection,\r
-            String transactionName)\r
-        {\r
-                       connection.ValidateBeginTransaction();\r
-            _transactionName = transactionName;\r
-            _connection = connection;\r
-            _isolationLevel = isolationLevel;\r
-            try\r
-            {\r
-                _connection.JdbcConnection.setAutoCommit(false);\r
-                _connection.JdbcConnection.setTransactionIsolation(\r
-                convertIsolationLevel(isolationLevel));\r
-            }\r
-            catch (SQLException exp)\r
-            {\r
-                throw new System.InvalidOperationException(exp.Message, exp);\r
-            }\r
-        }\r
-\r
-        \r
-        /**\r
-         * @see System.Data.IDbTransaction#Connection\r
-         */\r
-        protected override DbConnection DbConnection\r
-        {\r
-            get\r
-            {\r
-                return _connection;\r
-            }\r
-        }\r
-\r
-        /**\r
-         * @see System.Data.IDbTransaction#IsolationLevel\r
-         */\r
-        public override IsolationLevel IsolationLevel\r
-        {\r
-            get\r
-            {\r
-                return _isolationLevel;\r
-            }\r
-        }\r
-\r
-        /**\r
-         * @see System.Data.IDbTransaction#Commit()\r
-         */\r
-        public override void Commit()\r
-        {\r
-                       if (_connection == null)\r
-                               return;\r
-\r
-            try\r
-            {\r
-                _connection.JdbcConnection.commit();\r
-                               _connection.JdbcConnection.setAutoCommit(true);\r
-                               _connection = null;\r
-            }\r
-            catch (SQLException exp)\r
-            {\r
-                throw new SystemException(exp.Message, exp);\r
-            }\r
-        }\r
-\r
-        /**\r
-         * @see System.Data.IDbTransaction#Rollback()\r
-         */\r
-        public override void Rollback()\r
-        {\r
-                       if (_connection == null)\r
-                               return;\r
-\r
-            try\r
-            {\r
-                _connection.JdbcConnection.rollback();\r
-                               _connection.JdbcConnection.setAutoCommit(true);\r
-                               _connection = null;\r
-            }\r
-            catch (SQLException exp)\r
-            {\r
-                throw new SystemException(exp.Message, exp);\r
-            }\r
-        }\r
-\r
-               internal AbstractTransaction ActiveTransaction {\r
-                       get {\r
-                               // recoursively return parent transaction when nesting will\r
-                               // be implemented\r
-                               return _connection != null ? this : null;\r
-                       }\r
-               }\r
-\r
-        private int convertIsolationLevel(IsolationLevel isolationLevel)\r
-        {\r
-            if (isolationLevel == IsolationLevel.Unspecified)\r
-                return vmw.@internal.sql.ConnectionUtils__Finals.TRANSACTION_NONE;\r
-            if (isolationLevel == IsolationLevel.ReadCommitted)\r
-                return vmw.@internal.sql.ConnectionUtils__Finals.TRANSACTION_READ_COMMITTED;\r
-            if (isolationLevel == IsolationLevel.ReadUncommitted)\r
-                return vmw.@internal.sql.ConnectionUtils__Finals.TRANSACTION_READ_UNCOMMITTED;\r
-            if (isolationLevel == IsolationLevel.RepeatableRead)\r
-                return vmw.@internal.sql.ConnectionUtils__Finals.TRANSACTION_REPEATABLE_READ;\r
-            if (isolationLevel == IsolationLevel.Serializable)\r
-                return vmw.@internal.sql.ConnectionUtils__Finals.TRANSACTION_SERIALIZABLE;\r
-\r
-            throw new NotSupportedException("The Isolation level '" + isolationLevel + "' is not supported");\r
-        }\r
-    }\r
-}
\ No newline at end of file
diff --git a/mcs/class/System.Data/System.Data.ProviderBase.jvm/DbConvert.cs b/mcs/class/System.Data/System.Data.ProviderBase.jvm/DbConvert.cs
deleted file mode 100644 (file)
index 7b62cbe..0000000
+++ /dev/null
@@ -1,370 +0,0 @@
-//\r
-// System.Data.Common.DbConvert\r
-//\r
-// Author:\r
-//   Boris Kirzner (borisk@mainsoft.com)\r
-//\r
-\r
-using System;\r
-using System.Data.Common;\r
-\r
-using java.io;\r
-using java.sql;\r
-\r
-namespace System.Data.ProviderBase\r
-{\r
-       public abstract class DbConvert\r
-       {\r
-               #region Fields\r
-\r
-               const long JAVA_MIN_MILLIS_UTC = -62135769600000L; // java.sql.Timestamp.valueOf("0001-01-01 00:00:00.000000000").getTime() at Greenwich time zone.\r
-               static readonly long TIMEZONE_RAW_OFFSET;\r
-               // .NET milliseconds value of DateTime(1582,1,1,0,0,0,0).Ticks/TimeSpan.TicksPerMillisecond                     \r
-               const long CLR_MILLIS_1582 = 49891507200000L;\r
-               const long MILLIS_PER_TWO_DAYS = 2 * TimeSpan.TicksPerDay / TimeSpan.TicksPerMillisecond; // 172800000L;\r
-               internal static readonly java.util.TimeZone DEFAULT_TIME_ZONE;\r
-\r
-               #endregion // Fields\r
-\r
-               #region java.sql.Types constants\r
-\r
-               internal enum JavaSqlTypes {\r
-                       ARRAY = 2003 ,\r
-                       BIGINT = -5, \r
-                       BINARY = -2 ,\r
-                       BIT = -7 ,\r
-                       BLOB = 2004, \r
-                       BOOLEAN = 16, \r
-                       CHAR = 1, \r
-                       CLOB = 2005, \r
-                       DATALINK = 70, \r
-                       DATE = 91, \r
-                       DECIMAL = 3, \r
-                       DISTINCT = 2001, \r
-                       DOUBLE = 8, \r
-                       FLOAT = 6, \r
-                       INTEGER = 4, \r
-                       JAVA_OBJECT = 2000, \r
-                       LONGVARBINARY = -4,\r
-                       LONGVARCHAR = -1, \r
-                       NULL = 0, \r
-                       NUMERIC = 2 ,\r
-                       OTHER = 1111 ,\r
-                       REAL = 7 ,\r
-                       REF = 2006 ,\r
-                       SMALLINT = 5,\r
-                       STRUCT = 2002, \r
-                       TIME = 92, \r
-                       TIMESTAMP = 93, \r
-                       TINYINT = -6, \r
-                       VARBINARY = -3, \r
-                       VARCHAR = 12,\r
-                       //                      NOTSET = int.MinValue\r
-               }\r
-\r
-\r
-               #endregion // java.sql.Types constants\r
-\r
-               #region Methods\r
-\r
-               static DbConvert()\r
-               {\r
-                       DEFAULT_TIME_ZONE = java.util.SimpleTimeZone.getDefault();                      \r
-                       TIMEZONE_RAW_OFFSET = (long)DEFAULT_TIME_ZONE.getRawOffset();                                           \r
-               }\r
-\r
-               // The diff between .Net and Java goes as the following:\r
-               //  * at 1582: java has 10 days less than .net\r
-               //  * below 1500 (exept 1200,800,400) : each 100'th year java adds 1 day over .net. \r
-               // Current implementation compatible with .net in 1-99 and since 1582. In 100-1582 we're not compatible with .Ner nor with Java\r
-\r
-               internal static long JavaMillisToClrMillis(long javaMillis)\r
-               {\r
-                       return JavaMillisToClrMillisUTC(javaMillis) + TIMEZONE_RAW_OFFSET;\r
-               }\r
-\r
-               internal static long JavaMillisToClrMillisUTC(long javaMillis) {\r
-                       long clrMillis = javaMillis - JAVA_MIN_MILLIS_UTC;\r
-                       if (clrMillis > CLR_MILLIS_1582) {\r
-                               clrMillis -= MILLIS_PER_TWO_DAYS;\r
-                       }\r
-                       return clrMillis;\r
-               }\r
-\r
-               internal static long ClrMillisToJavaMillis(long clrMillis)\r
-               {\r
-                       return ClrMillisToJavaMillisUTC(clrMillis) - TIMEZONE_RAW_OFFSET;\r
-               }\r
-\r
-               internal static long ClrMillisToJavaMillisUTC(long clrMillis) {\r
-                       long javaMillis = clrMillis + JAVA_MIN_MILLIS_UTC;\r
-                       if (clrMillis > CLR_MILLIS_1582) {\r
-                               javaMillis += MILLIS_PER_TWO_DAYS;\r
-                       }\r
-                       return javaMillis;\r
-               }\r
-\r
-               internal static java.sql.Time ClrTicksToJavaTime(long ticks) {\r
-                       return new Time((ticks / TimeSpan.TicksPerMillisecond)\r
-                               - DEFAULT_TIME_ZONE.getRawOffset());\r
-               }\r
-\r
-               internal static java.sql.Date ClrTicksToJavaDate(long ticks) {\r
-                       java.sql.Date d = new java.sql.Date(0);\r
-                       ClrTicksToJavaDate(d, ticks);\r
-                       return d;\r
-               }\r
-\r
-               internal static java.sql.Timestamp ClrTicksToJavaTimestamp(long ticks)\r
-               {\r
-                       java.sql.Timestamp ts = new java.sql.Timestamp(0);\r
-                       ClrTicksToJavaDate(ts, ticks);\r
-\r
-//                     int nanos = (int)(ticks % TimeSpan.TicksPerMillisecond) * 100;\r
-//                     ts.setNanos(javaTimestamp.getNanos() + nanos);\r
-\r
-                       return ts;\r
-               }\r
-\r
-               internal static void ClrTicksToJavaDate(java.util.Date d, long ticks) {\r
-                       long millis = ClrMillisToJavaMillis(ticks / TimeSpan.TicksPerMillisecond);\r
-\r
-                       d.setTime(millis);\r
-                       if (DEFAULT_TIME_ZONE.inDaylightTime(d)) {\r
-                               millis -= DEFAULT_TIME_ZONE.getDSTSavings();\r
-                               d.setTime(millis);\r
-                       }\r
-               }\r
-               \r
-               internal static long JavaTimestampToClrTicks(java.sql.Timestamp ts)\r
-               {\r
-                       long ticks = JavaDateToClrTicks(ts);\r
-                       // Extra ticks, for dbs that can save them. \r
-                       // We do not use it, since .net does not saves ticks for fractial milliseconds\r
-                       // long ticksLessThanMilliseconds = (ts.getNanos()*100) % TimeSpan.TicksPerMillisecond;\r
-                       // ticks += ticksLessThanMilliseconds;\r
-                       \r
-                       return ticks;\r
-               }\r
-\r
-               internal static long JavaDateToClrTicks(java.util.Date d) {\r
-                       long millis = JavaMillisToClrMillis(d.getTime());\r
-                       if (DEFAULT_TIME_ZONE.inDaylightTime(d)) {\r
-                               millis += DEFAULT_TIME_ZONE.getDSTSavings();\r
-                       }\r
-                       return millis * TimeSpan.TicksPerMillisecond;\r
-               }\r
-\r
-               internal static long JavaTimeToClrTicks(java.sql.Time t) {\r
-                       return (t.getTime() + DEFAULT_TIME_ZONE.getRawOffset())\r
-                               * TimeSpan.TicksPerMillisecond;\r
-               }\r
-\r
-               internal static Type JavaSqlTypeToClrType(int sqlTypeValue)\r
-               {\r
-                       JavaSqlTypes sqlType = (JavaSqlTypes)sqlTypeValue;\r
-\r
-                       switch (sqlType) {\r
-                               case JavaSqlTypes.ARRAY : return typeof (java.sql.Array);\r
-                               case JavaSqlTypes.BIGINT : return DbTypes.TypeOfInt64;\r
-                               case JavaSqlTypes.BINARY : return DbTypes.TypeOfByteArray;\r
-                               case JavaSqlTypes.BIT : return DbTypes.TypeOfBoolean;\r
-                               case JavaSqlTypes.BLOB : return DbTypes.TypeOfByteArray;\r
-                               case JavaSqlTypes.BOOLEAN : return DbTypes.TypeOfBoolean;\r
-                               case JavaSqlTypes.CHAR : return DbTypes.TypeOfString;\r
-                               case JavaSqlTypes.CLOB : return DbTypes.TypeOfString;\r
-//                             case JavaSqlTypes.DATALINK :\r
-                               case JavaSqlTypes.DATE : return DbTypes.TypeOfDateTime;\r
-                               case JavaSqlTypes.DECIMAL : return DbTypes.TypeOfDecimal;\r
-//                             case JavaSqlTypes.DISTINCT :\r
-                               case JavaSqlTypes.DOUBLE : return DbTypes.TypeOfDouble;\r
-                               case JavaSqlTypes.FLOAT : return DbTypes.TypeOfDouble;\r
-                               case JavaSqlTypes.INTEGER : return DbTypes.TypeOfInt32;\r
-//                             case JavaSqlTypes.JAVA_OBJECT :\r
-                               case JavaSqlTypes.LONGVARBINARY : return DbTypes.TypeOfByteArray;\r
-                               case JavaSqlTypes.LONGVARCHAR : return DbTypes.TypeOfString;\r
-                               case JavaSqlTypes.NULL : return null;\r
-                               case JavaSqlTypes.NUMERIC : return DbTypes.TypeOfDecimal;\r
-//                             case JavaSqlTypes.OTHER :\r
-                               case JavaSqlTypes.REAL : return DbTypes.TypeOfSingle;\r
-                               case JavaSqlTypes.REF : return typeof (java.sql.Ref);\r
-                               case JavaSqlTypes.SMALLINT : return DbTypes.TypeOfInt16;\r
-                               case JavaSqlTypes.STRUCT : return typeof (java.sql.Struct);\r
-                               case JavaSqlTypes.TIME : return DbTypes.TypeOfTimespan;\r
-                               case JavaSqlTypes.TIMESTAMP : return DbTypes.TypeOfDateTime;\r
-                               case JavaSqlTypes.TINYINT : return DbTypes.TypeOfByte;\r
-                               case JavaSqlTypes.VARBINARY : return DbTypes.TypeOfByteArray;\r
-                               case JavaSqlTypes.VARCHAR : return DbTypes.TypeOfString;\r
-                               default : return DbTypes.TypeOfObject;\r
-                       }\r
-\r
-               }\r
-\r
-\r
-               internal static object JavaResultSetToClrWrapper(CallableStatement results,int columnIndex,JavaSqlTypes javaSqlType,int maxLength ,ResultSetMetaData resultsMetaData)\r
-               {\r
-                       object returnValue = null;      \r
-                       sbyte[] sbyteArray;\r
-                       long milliseconds;\r
-                       long ticks;\r
-                       string s;\r
-                       columnIndex++; //jdbc style\r
-                       switch (javaSqlType) {\r
-                               case JavaSqlTypes.ARRAY :\r
-                                       returnValue = results.getArray(columnIndex);\r
-                                       break;\r
-                               case JavaSqlTypes.BIGINT :\r
-                                       returnValue = results.getLong(columnIndex);\r
-                                       break;\r
-                               case JavaSqlTypes.BINARY :\r
-                               case JavaSqlTypes.VARBINARY :\r
-                               case JavaSqlTypes.LONGVARBINARY :\r
-                                       // FIXME : comsider using maxLength\r
-                                       sbyteArray = results.getBytes(columnIndex);\r
-                                       if (sbyteArray != null) {\r
-                                               returnValue = vmw.common.TypeUtils.ToByteArray(sbyteArray);\r
-                                       }\r
-                                       break;\r
-                               case JavaSqlTypes.BIT :\r
-                                       returnValue = results.getBoolean(columnIndex);\r
-                                       break;\r
-                               case JavaSqlTypes.BLOB :\r
-                                       // FIXME : comsider using maxLength\r
-                                       java.sql.Blob blob = results.getBlob(columnIndex);\r
-                                       if (blob != null) {\r
-                                               InputStream input = blob.getBinaryStream();                                     \r
-                                               if (input == null) {\r
-                                                       returnValue = new byte[0];\r
-                                               }\r
-                                               else {\r
-                                                       long length = blob.length();\r
-                                                       byte[] byteValue = new byte[length];\r
-                                                       sbyte[] sbyteValue = vmw.common.TypeUtils.ToSByteArray(byteValue);\r
-                                                       input.read(sbyteValue);\r
-                                                       returnValue = byteValue;\r
-                                               }\r
-                                       }\r
-                                       break;  \r
-                               case JavaSqlTypes.CHAR :                                                \r
-                                       if (resultsMetaData != null && "uniqueidentifier".Equals(resultsMetaData.getColumnTypeName(columnIndex))) {\r
-                                               returnValue = new Guid(results.getString(columnIndex));\r
-                                       }\r
-                                       else {\r
-                                               // Oracle Jdbc driver returns extra trailing 0 chars for NCHAR columns, so we threat this at parameter.Size level\r
-                                               s = results.getString(columnIndex);\r
-                                               if ((s != null) && (maxLength < s.Length)) {\r
-                                                       s = s.Substring(0,maxLength);\r
-                                               }\r
-                                               returnValue = s;\r
-                                       }\r
-                                       break;\r
-                               case JavaSqlTypes.CLOB :\r
-                                       // FIXME : comsider using maxLength\r
-                                       java.sql.Clob clob = results.getClob(columnIndex);\r
-                                       if (clob != null) {\r
-                                               java.io.Reader reader = clob.getCharacterStream();                                      \r
-                                               if (reader == null) {\r
-                                                       returnValue = String.Empty;\r
-                                               }\r
-                                               else {\r
-                                                       long length = clob.length();\r
-                                                       char[] charValue = new char[length];\r
-                                                       reader.read(charValue);\r
-                                                       returnValue = new string(charValue);\r
-                                               }\r
-                                       }\r
-                                       break;          \r
-                               case JavaSqlTypes.TIME :\r
-                                       Time t = results.getTime(columnIndex);\r
-                                       if (t != null) {\r
-                                               returnValue = new TimeSpan(JavaTimeToClrTicks(t));\r
-                                       }\r
-                                       break;  \r
-                               case JavaSqlTypes.DATE :\r
-                                       Date d = results.getDate(columnIndex);\r
-                                       if (d != null) {\r
-                                               returnValue = new DateTime(JavaDateToClrTicks(d));\r
-                                       }\r
-                                       break;\r
-                               case JavaSqlTypes.TIMESTAMP :                           \r
-                                       Timestamp ts = results.getTimestamp(columnIndex);\r
-                                       if (ts != null) {\r
-                                               returnValue = new DateTime(JavaTimestampToClrTicks(ts));\r
-                                       }\r
-                                       break;          \r
-                               case JavaSqlTypes.DECIMAL :\r
-                               case JavaSqlTypes.NUMERIC :\r
-                                       // java.sql.Types.NUMERIC (2), columnTypeName NUMBER, columnClassName java.math.BigDecimal \r
-                                       // therefore we rely on scale\r
-                                       if (resultsMetaData != null &&  resultsMetaData.getScale(columnIndex) == -127) {\r
-                                               // Oracle db type FLOAT\r
-                                               returnValue = results.getDouble(columnIndex);\r
-                                       }\r
-                                       else {\r
-                                               java.math.BigDecimal bigDecimal = results.getBigDecimal(columnIndex);\r
-                                               if (bigDecimal != null) {\r
-                                                       returnValue = vmw.common.PrimitiveTypeUtils.BigDecimalToDecimal(bigDecimal);\r
-                                               }\r
-                                       }\r
-                                       break;          \r
-                               case JavaSqlTypes.DISTINCT :\r
-                                       returnValue = results.getObject(columnIndex);\r
-                                       break;\r
-                               case JavaSqlTypes.DOUBLE :\r
-                                       returnValue = results.getDouble(columnIndex);\r
-                                       break;\r
-                               case JavaSqlTypes.FLOAT :\r
-                                       //float f = results.getFloat(columnIndex);\r
-                                       returnValue = results.getDouble(columnIndex);\r
-                                       break;\r
-                               case JavaSqlTypes.INTEGER :\r
-                                       returnValue = results.getInt(columnIndex);\r
-                                       break;\r
-                               case JavaSqlTypes.JAVA_OBJECT :\r
-                                       returnValue = results.getObject(columnIndex);\r
-                                       break;\r
-                               case JavaSqlTypes.LONGVARCHAR :\r
-                                       returnValue = results.getString(columnIndex);\r
-                                       break;\r
-                               case JavaSqlTypes.NULL :\r
-                                       returnValue = DBNull.Value;\r
-                                       break;\r
-                               case JavaSqlTypes.OTHER :\r
-                                       returnValue = results.getObject(columnIndex);\r
-                                       break;\r
-                               case JavaSqlTypes.REAL :\r
-                                       returnValue = results.getFloat(columnIndex);\r
-                                       break;\r
-                               case JavaSqlTypes.REF :\r
-                                       returnValue = results.getRef(columnIndex);\r
-                                       break;\r
-                               case JavaSqlTypes.SMALLINT :\r
-                                       returnValue = results.getShort(columnIndex);\r
-                                       break;\r
-                               case JavaSqlTypes.STRUCT :\r
-                                       returnValue = results.getObject(columnIndex);\r
-                                       break;\r
-                               case JavaSqlTypes.TINYINT :\r
-                                       returnValue = Convert.ToByte(results.getByte(columnIndex));\r
-                                       break;\r
-                               case JavaSqlTypes.VARCHAR :\r
-                                       s = results.getString(columnIndex);\r
-                                       if ((s != null) && (maxLength < s.Length)) {\r
-                                               s = s.Substring(0,maxLength);\r
-                                       }\r
-                                       returnValue = s;\r
-                                       break;\r
-                               default :\r
-                                       returnValue = results.getObject(columnIndex);\r
-                                       break;\r
-                       }\r
-                               \r
-                       if (results.wasNull() || results == null) {\r
-                               return DBNull.Value;\r
-                       }                \r
-                       return  returnValue;\r
-               }\r
-\r
-               #endregion // Methods\r
-       }\r
-}\r
diff --git a/mcs/class/System.Data/System.Data.ProviderBase.jvm/ParameterMetadataWrapper.cs b/mcs/class/System.Data/System.Data.ProviderBase.jvm/ParameterMetadataWrapper.cs
deleted file mode 100644 (file)
index 45ee1b0..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-//\r
-// System.Data.ProviderBase.ParameterMetaDataWrapper\r
-//
-// Authors:
-//     Konstantin Triger <kostat@mainsoft.com>
-//     Boris Kirzner <borisk@mainsoft.com>
-//     
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//\r
-\r
-using System;\r
-\r
-using java.sql;\r
-\r
-namespace System.Data.ProviderBase\r
-{\r
-       public class ParameterMetadataWrapper : java.sql.ResultSetMetaData\r
-       {\r
-               #region Fields \r
-\r
-               ParameterMetaData _parameterMetaData;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Constructors\r
-\r
-               public ParameterMetadataWrapper(ParameterMetaData parameterMetaData)\r
-               {\r
-                       _parameterMetaData = parameterMetaData;\r
-               }\r
-\r
-               #endregion // Constructors\r
-\r
-               #region Methods\r
-\r
-               public int getColumnCount() { throw new NotImplementedException(); }\r
-\r
-               public int getColumnDisplaySize(int i) { throw new NotImplementedException(); }\r
-\r
-               public int getColumnType(int i) { throw new NotImplementedException(); }\r
-\r
-               public int getPrecision(int i) { throw new NotImplementedException(); }\r
-\r
-               public int getScale(int i) { throw new NotImplementedException(); }\r
-\r
-               public int isNullable(int i) { throw new NotImplementedException(); }\r
-\r
-               public bool isAutoIncrement(int i) { throw new NotImplementedException(); }\r
-\r
-               public bool isCaseSensitive(int i) { throw new NotImplementedException(); }\r
-\r
-               public bool isCurrency(int i) { throw new NotImplementedException(); }\r
-\r
-               public bool isDefinitelyWritable(int i) { throw new NotImplementedException(); }\r
-\r
-               public bool isReadOnly(int i) { throw new NotImplementedException(); }\r
-\r
-               public bool isSearchable(int i) { throw new NotImplementedException(); }\r
-\r
-               public bool isSigned(int i) { throw new NotImplementedException(); }\r
-\r
-               public bool isWritable(int i) { throw new NotImplementedException(); }\r
-\r
-               public String getCatalogName(int i) { throw new NotImplementedException(); }\r
-\r
-               public String getColumnClassName(int i) { throw new NotImplementedException(); }\r
-\r
-               public String getColumnLabel(int i) { throw new NotImplementedException(); }\r
-\r
-               public String getColumnName(int i) { throw new NotImplementedException(); }\r
-\r
-               public String getColumnTypeName(int i) { return _parameterMetaData.getParameterTypeName(i); }\r
-\r
-               public String getSchemaName(int i) { throw new NotImplementedException(); }\r
-\r
-               public String getTableName(int i) { throw new NotImplementedException(); }\r
-\r
-               #endregion // Methods\r
-       }\r
-}\r
diff --git a/mcs/class/System.Data/System.Data.ProviderBase.jvm/ReaderCache.cs b/mcs/class/System.Data/System.Data.ProviderBase.jvm/ReaderCache.cs
deleted file mode 100644 (file)
index 7a9d1ff..0000000
+++ /dev/null
@@ -1,795 +0,0 @@
-//\r
-// System.Data.ProviderBase.ReaderCache.cs\r
-//\r
-// Authors:\r
-//     Konstantin Triger <kostat@mainsoft.com>\r
-//     Boris Kirzner <borisk@mainsoft.com>\r
-//     \r
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)\r
-//\r
-\r
-//\r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-// \r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-//\r
-\r
-using System;\r
-using java.sql;\r
-\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
-       public abstract class ReaderCacheContainerBase : IReaderCacheContainer\r
-       {\r
-               #region Fields\r
-\r
-               bool _isNull;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Methods\r
-\r
-               protected abstract void FetchInternal(ResultSet rs, int columnIndex);\r
-               protected virtual void FetchInternal(ResultSet rs, int columnIndex, bool isSequential) {\r
-                       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
-               {\r
-                       FetchInternal(rs, columnIndex + 1, isSequential);\r
-                       _isNull = rs.wasNull();\r
-               }\r
-\r
-               public bool IsNull()\r
-               {\r
-                       return _isNull;\r
-               }\r
-\r
-               #endregion // Methods\r
-       }\r
-\r
-\r
-       internal sealed class ArrayReaderCacheContainer : ReaderCacheContainerBase // Types.ARRAY\r
-       {\r
-               #region Fields\r
-\r
-               object _a;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Methods\r
-\r
-               protected override void FetchInternal(ResultSet rs, int columnIndex)\r
-               {\r
-                       _a = rs.getArray(columnIndex).getArray();\r
-               }\r
-\r
-               public override object GetValue()\r
-               {\r
-                       return _a;\r
-               }\r
-\r
-               #endregion // Methods\r
-       }\r
-\r
-\r
-       internal sealed class Int64ReaderCacheContainer : ReaderCacheContainerBase // Types.BIGINT\r
-       {\r
-               #region Fields\r
-               \r
-               long _l;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Methods\r
-\r
-               protected override  void FetchInternal(ResultSet rs, int columnIndex)\r
-               {\r
-                       _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
-               }\r
-\r
-               internal long GetInt64()\r
-               {\r
-                       return _l;\r
-               }\r
-\r
-               #endregion // Methods\r
-       }\r
-\r
-\r
-       internal class BytesReaderCacheContainer : ReaderCacheContainerBase // Types.BINARY, Types.VARBINARY, Types.LONGVARBINARY\r
-       {\r
-               #region Fields\r
-\r
-               protected byte[] _b;\r
-               \r
-               #endregion // Fields\r
-\r
-               #region Methods\r
-\r
-               protected override void FetchInternal(ResultSet rs, int columnIndex)\r
-               {\r
-                       sbyte[] sbyteArray = rs.getBytes(columnIndex);\r
-                       if (sbyteArray != null) {\r
-                               _b = (byte[])vmw.common.TypeUtils.ToByteArray(sbyteArray);\r
-                       }\r
-               }\r
-\r
-               public override object GetValue()\r
-               {\r
-                       return _b;\r
-               }\r
-\r
-               internal byte[] GetBytes()\r
-               {\r
-                       return (byte[])GetValue();\r
-               }\r
-\r
-               internal virtual long GetBytes(\r
-                       long dataIndex,\r
-                       byte[] buffer,\r
-                       int bufferIndex,\r
-                       int length) {\r
-                       if (_b == null)\r
-                               return 0;\r
-                       if (buffer == null)\r
-                               return _b.LongLength;\r
-                       long actualLength = ((dataIndex + length) >= _b.LongLength) ? (_b.LongLength - dataIndex) : length;\r
-                       Array.Copy(_b,dataIndex,buffer,bufferIndex,actualLength);\r
-                       return actualLength;\r
-               }\r
-\r
-               #endregion // Methods\r
-       }\r
-\r
-\r
-       internal sealed class BooleanReaderCacheContainer : ReaderCacheContainerBase // Types.BIT\r
-       {\r
-               #region Fields\r
-               \r
-               bool _b;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Methods\r
-\r
-               protected override void FetchInternal(ResultSet rs, int columnIndex)\r
-               {\r
-                       _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
-               }\r
-\r
-               internal bool GetBoolean()\r
-               {\r
-                       return _b;\r
-               }\r
-\r
-               #endregion // Methods\r
-       }\r
-\r
-\r
-       internal sealed class BlobReaderCacheContainer : BytesReaderCacheContainer // Types.BLOB\r
-       {\r
-               #region Fields\r
-\r
-               static readonly byte[] _emptyByteArr = new byte[0];\r
-               java.sql.Blob _blob;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Methods\r
-\r
-               protected override void FetchInternal(ResultSet rs, int columnIndex) {\r
-                       throw new NotImplementedException("Should not be called");\r
-               }\r
-\r
-\r
-               protected override void FetchInternal(ResultSet rs, int columnIndex, bool isSequential)\r
-               {\r
-                       _blob = rs.getBlob(columnIndex);\r
-                       if (!isSequential)\r
-                               ReadAll();\r
-                       \r
-               }\r
-\r
-               void ReadAll() {\r
-                       if (_blob != null) {\r
-                               long length = _blob.length();                                                           \r
-                               if (length == 0) {\r
-                                       _b = _emptyByteArr;\r
-                               }\r
-                               else {  \r
-                                       java.io.InputStream input = _blob.getBinaryStream();    \r
-                                       byte[] byteValue = new byte[length];\r
-                                       sbyte[] sbyteValue = vmw.common.TypeUtils.ToSByteArray(byteValue);\r
-                                       input.read(sbyteValue);\r
-                                       _b = byteValue;\r
-                               }\r
-                       }\r
-               }\r
-\r
-               public override object GetValue()\r
-               {\r
-                       if (_b == null)\r
-                               ReadAll();\r
-                       return base.GetValue();\r
-               }\r
-\r
-               internal override long GetBytes(long dataIndex, byte[] buffer, int bufferIndex, int length) {\r
-                       if (_b != null)\r
-                               return base.GetBytes (dataIndex, buffer, bufferIndex, length);\r
-\r
-                       if (_blob == null)\r
-                               return 0;\r
-\r
-                       if (buffer == null)\r
-                               return _blob.length();\r
-\r
-                       java.io.InputStream input = _blob.getBinaryStream();\r
-                       input.skip(dataIndex);\r
-                       return input.read(vmw.common.TypeUtils.ToSByteArray(buffer), bufferIndex, length);\r
-               }\r
-\r
-\r
-               #endregion // Methods\r
-       }\r
-       \r
-\r
-       internal abstract class CharsReaderCacheContainer : ReaderCacheContainerBase // \r
-       {\r
-               #region Fields\r
-               \r
-               #endregion // Fields\r
-\r
-               #region Methods\r
-\r
-               internal abstract long GetChars(\r
-                       long dataIndex,\r
-                       char[] buffer,\r
-                       int bufferIndex,\r
-                       int length);\r
-\r
-               #endregion // Methods\r
-       }\r
-\r
-\r
-       internal sealed class GuidReaderCacheContainer : ReaderCacheContainerBase // Types.CHAR\r
-       {\r
-               #region Fields\r
-               \r
-               Guid _g;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Methods\r
-\r
-               protected override void FetchInternal(ResultSet rs, int columnIndex)\r
-               {\r
-                       string s = rs.getString(columnIndex);\r
-                       if (s != null)\r
-                               _g = new Guid(s);\r
-               }\r
-\r
-               public override object GetValue()\r
-               {\r
-                       return _g;\r
-               }\r
-\r
-               internal Guid GetGuid()\r
-               {\r
-                       return _g;\r
-               }\r
-\r
-               #endregion // Methods\r
-       }\r
-\r
-\r
-       internal sealed class ClobReaderCacheContainer : StringReaderCacheContainer // Types.CLOB\r
-       {\r
-               #region Fields\r
-               \r
-               java.sql.Clob _clob;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Methods\r
-\r
-               protected override void FetchInternal(ResultSet rs, int columnIndex, bool isSequential)\r
-               {\r
-                       _clob = rs.getClob(columnIndex);\r
-                       if (!isSequential)\r
-                               ReadAll();\r
-                       \r
-               }\r
-\r
-               void ReadAll() {\r
-                       if (_clob != null) {\r
-                               long length = _clob.length();                                                           \r
-                               if (length == 0) {\r
-                                       _s = String.Empty;\r
-                               }\r
-                               else {  \r
-                                       java.io.Reader reader = _clob.getCharacterStream();     \r
-                                       char[] charValue = new char[length];\r
-                                       reader.read(charValue);\r
-                                       if (charValue != null)\r
-                                               _s = new String(charValue);\r
-                               }\r
-                       }\r
-               }\r
-\r
-               public override object GetValue()\r
-               {\r
-                       if (_s == null)\r
-                               ReadAll();\r
-                       return base.GetValue();\r
-               }\r
-\r
-               internal override long GetChars(long dataIndex, char[] buffer, int bufferIndex, int length) {\r
-                       if (_s != null)\r
-                               return base.GetChars (dataIndex, buffer, bufferIndex, length);\r
-\r
-                       if (_clob == null)\r
-                               return 0;\r
-\r
-                       if (buffer == null)\r
-                               return _clob.length();\r
-\r
-                       java.io.Reader reader = _clob.getCharacterStream();\r
-                       reader.skip(dataIndex);\r
-                       return reader.read(buffer, bufferIndex, length);\r
-               }\r
-\r
-\r
-               #endregion // Methods\r
-       }\r
-       \r
-\r
-       internal sealed class TimeSpanReaderCacheContainer : ReaderCacheContainerBase // Types.TIME\r
-       {\r
-               #region Fields\r
-               \r
-               TimeSpan _t;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Methods\r
-\r
-               protected override void FetchInternal(ResultSet rs, int columnIndex)\r
-               {\r
-                       Time t = rs.getTime(columnIndex);\r
-                       if (t != null) {                                \r
-                               _t = new TimeSpan(DbConvert.JavaTimeToClrTicks(t));\r
-                       }\r
-               }\r
-\r
-               public override object GetValue()\r
-               {\r
-                       return _t;\r
-               }\r
-\r
-               internal TimeSpan GetTimeSpan()\r
-               {\r
-                       return _t;\r
-               }\r
-\r
-               #endregion // Methods\r
-       }\r
-\r
-\r
-       internal class DateTimeReaderCacheContainer : ReaderCacheContainerBase // Types.TIMESTAMP\r
-       {\r
-               #region Fields\r
-               \r
-               protected DateTime _d;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Methods\r
-\r
-               protected override void FetchInternal(ResultSet rs, int columnIndex)\r
-               {\r
-                       Date d = rs.getDate(columnIndex);\r
-                       if (d != null) {\r
-                               _d = new DateTime(DbConvert.JavaDateToClrTicks(d));\r
-                       }\r
-               }\r
-\r
-               public override object GetValue()\r
-               {\r
-                       return _d;\r
-               }\r
-\r
-               internal DateTime GetDateTime()\r
-               {\r
-                       return _d;\r
-               }\r
-\r
-               #endregion // Methods\r
-       }\r
-\r
-       internal sealed class TimestampReaderCacheContainer : DateTimeReaderCacheContainer // Types.DATE\r
-       {\r
-               protected override void FetchInternal(ResultSet rs, int columnIndex) {\r
-                       Timestamp ts = rs.getTimestamp(columnIndex);\r
-                       if (ts != null) {\r
-                               _d = new DateTime(DbConvert.JavaTimestampToClrTicks(ts));\r
-                       }\r
-               }\r
-       }\r
-\r
-\r
-       internal sealed class DecimalReaderCacheContainer : ReaderCacheContainerBase // Types.DECIMAL, Types.NUMERIC\r
-       {\r
-               #region Fields\r
-               \r
-               decimal _d;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Methods\r
-\r
-               protected override void FetchInternal(ResultSet rs, int columnIndex)\r
-               {\r
-                       java.math.BigDecimal bigDecimal = rs.getBigDecimal(columnIndex);\r
-                       if (bigDecimal != null) {\r
-                               _d = (decimal)vmw.common.PrimitiveTypeUtils.BigDecimalToDecimal(bigDecimal);\r
-                       }\r
-               }\r
-\r
-               public override bool IsNumeric() {\r
-                       return true;\r
-               }\r
-\r
-               public override object GetValue()\r
-               {\r
-                       return _d;\r
-               }\r
-\r
-               internal decimal GetDecimal()\r
-               {\r
-                       return _d;\r
-               }\r
-\r
-               #endregion // Methods\r
-       }\r
-\r
-\r
-       internal sealed class DoubleReaderCacheContainer : ReaderCacheContainerBase // Types.DOUBLE, Types.Float, Types.NUMERIC for Oracle with scale = -127\r
-       {\r
-               #region Fields\r
-               \r
-               double _d;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Methods\r
-\r
-               protected override  void FetchInternal(ResultSet rs, int columnIndex)\r
-               {\r
-                       _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
-               }\r
-\r
-               internal double GetDouble()\r
-               {\r
-                       return _d;\r
-               }\r
-\r
-               #endregion // Methods\r
-       }\r
-\r
-\r
-       internal sealed class Int32ReaderCacheContainer : ReaderCacheContainerBase // Types.INTEGER\r
-       {\r
-               #region Fields\r
-               \r
-               int _i;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Methods\r
-\r
-               protected override  void FetchInternal(ResultSet rs, int columnIndex)\r
-               {\r
-                       _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
-               }\r
-\r
-               internal int GetInt32()\r
-               {\r
-                       return _i;\r
-               }\r
-\r
-               #endregion // Methods\r
-       }\r
-\r
-\r
-       internal class StringReaderCacheContainer : CharsReaderCacheContainer // Types.LONGVARCHAR, Types.VARCHAR, Types.CHAR\r
-       {\r
-               #region Fields\r
-               \r
-               protected string _s;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Methods\r
-\r
-               protected override  void FetchInternal(ResultSet rs, int columnIndex)\r
-               {\r
-                       _s = rs.getString(columnIndex);\r
-                       // Oracle Jdbc driver returns extra trailing 0 chars for NCHAR columns\r
-//                     if ((_s != null) && (_jdbcType == 1)) { \r
-//                             Console.WriteLine(_jdbcType);\r
-//                             int zeroIndex = ((string)_s).IndexOf((char)0);\r
-//                             if (zeroIndex > 0) {\r
-//                                     Console.WriteLine("zero-padded");\r
-//                                     _s = ((string)_s).Substring(0,zeroIndex);\r
-//                             }\r
-//                             else {\r
-//                                     // Oracle sometimes pads with blanks (32)\r
-//                                     int blankIndex = ((string)_s).IndexOf((char)32);\r
-//                                     if (blankIndex > 0) {\r
-//                                             Console.WriteLine("blank-padded");\r
-//                                             _s = ((string)_s).Substring(0,blankIndex);\r
-//                                     }\r
-//                             }\r
-//                     }\r
-               }\r
-\r
-               public override object GetValue()\r
-               {\r
-                       return _s;\r
-               }\r
-\r
-               internal string GetString()\r
-               {\r
-                       return _s;\r
-               }\r
-               \r
-               internal override long GetChars(long dataIndex, char[] buffer, int bufferIndex, int length) {\r
-                       if (_s == null)\r
-                               return 0;\r
-                       if (buffer == null)\r
-                               return _s.Length;\r
-                       int actualLength = ((dataIndex + length) >= _s.Length) ? (_s.Length - (int)dataIndex) : length;\r
-                       _s.CopyTo((int)dataIndex, buffer, bufferIndex, actualLength);\r
-                       return actualLength;\r
-               }\r
-\r
-\r
-               #endregion // Methods\r
-       }\r
-\r
-\r
-       internal sealed class NullReaderCacheContainer : ReaderCacheContainerBase // Types.NULL\r
-       {\r
-               #region Fields\r
-\r
-               #endregion // Fields\r
-\r
-               #region Methods\r
-\r
-               protected override  void FetchInternal(ResultSet rs, int columnIndex)\r
-               {\r
-               }\r
-\r
-               public override object GetValue()\r
-               {\r
-                       return DBNull.Value;\r
-               }\r
-\r
-               #endregion // Methods\r
-       }\r
-\r
-\r
-       internal sealed class FloatReaderCacheContainer : ReaderCacheContainerBase // Types.REAL\r
-       {\r
-               #region Fields\r
-               \r
-               float _f;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Methods\r
-\r
-               protected override  void FetchInternal(ResultSet rs, int columnIndex)\r
-               {\r
-                       _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
-               }\r
-\r
-               internal float GetFloat()\r
-               {\r
-                       return _f;\r
-               }\r
-\r
-               #endregion // Methods\r
-       }\r
-\r
-\r
-       internal sealed class RefReaderCacheContainer : ReaderCacheContainerBase // Types.REF\r
-       {\r
-               #region Fields\r
-               \r
-               java.sql.Ref _r;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Methods\r
-\r
-               protected override void FetchInternal(ResultSet rs, int columnIndex)\r
-               {\r
-                       _r = rs.getRef(columnIndex);\r
-               }\r
-\r
-               public override object GetValue()\r
-               {\r
-                       return _r;\r
-               }\r
-\r
-               #endregion // Methods\r
-       }\r
-\r
-\r
-       internal sealed class Int16ReaderCacheContainer : ReaderCacheContainerBase // Types.SMALLINT\r
-       {\r
-               #region Fields\r
-               \r
-               short _s;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Methods\r
-\r
-               protected override void FetchInternal(ResultSet rs, int columnIndex)\r
-               {\r
-                       _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
-               }\r
-\r
-               internal short GetInt16()\r
-               {\r
-                       return _s;\r
-               }\r
-\r
-               #endregion // Methods\r
-       }\r
-\r
-\r
-       internal sealed class ByteReaderCacheContainer : ReaderCacheContainerBase // Types.TINYINT\r
-       {\r
-               #region Fields\r
-               \r
-               byte _b;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Methods\r
-\r
-               protected override void FetchInternal(ResultSet rs, int columnIndex)\r
-               {\r
-                       _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
-               }\r
-\r
-               internal byte GetByte()\r
-               {\r
-                       return _b;\r
-               }\r
-\r
-               #endregion // Methods\r
-       }\r
-\r
-\r
-       internal sealed class ObjectReaderCacheContainer : ReaderCacheContainerBase // Types.Distinct, Types.JAVA_OBJECT, Types.OTHER, Types.STRUCT\r
-       {\r
-               #region Fields\r
-               \r
-               object o;\r
-\r
-               #endregion // Fields\r
-\r
-               #region Methods\r
-\r
-               protected override  void FetchInternal(ResultSet rs, int columnIndex)\r
-               {\r
-                       o = rs.getObject(columnIndex);\r
-               }\r
-\r
-               public override object GetValue()\r
-               {\r
-                       return o;\r
-               }\r
-\r
-               #endregion // Methods\r
-       }\r
-\r
-}\r
diff --git a/mcs/class/System.Data/System.Data.SqlClient.jvm/SqlCommand.cs b/mcs/class/System.Data/System.Data.SqlClient.jvm/SqlCommand.cs
deleted file mode 100644 (file)
index 4333ae8..0000000
+++ /dev/null
@@ -1,284 +0,0 @@
-//
-// System.Data.SqlClient.SqlCommand
-//
-// Authors:
-//     Konstantin Triger <kostat@mainsoft.com>
-//     Boris Kirzner <borisk@mainsoft.com>
-//     
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections;
-using System.Text;
-using System.Text.RegularExpressions;
-using System.Data;
-using System.Data.Common;
-using System.Data.ProviderBase;
-using System.Xml;
-
-using java.sql;
-
-namespace System.Data.SqlClient
-{
-       public sealed class SqlCommand : AbstractDbCommand
-       {
-               #region Fields
-
-               #endregion // Fields
-
-               #region Constructors
-
-               // Initializes a new instance of the SqlCommand class.
-               // The base constructor initializes all fields to their default values.
-               // The following table shows initial property values for an instance of SqlCommand.
-               public SqlCommand() : this(null, null, null)
-               {
-               }
-
-               public SqlCommand(SqlConnection connection) : this(null, connection, null)
-               {
-               }
-
-               // Initializes a new instance of the SqlCommand class with the text of the query.
-               public SqlCommand(String cmdText) : this(cmdText, null, null)
-               {
-               }
-
-               // Initializes a new instance of the SqlCommand class with the text of the query and a SqlConnection.
-               public SqlCommand(String cmdText, SqlConnection connection) : this(cmdText, connection, null)
-               {
-               }
-
-               // Initializes a new instance of the SqlCommand class with the text of the query, a SqlConnection, and the Transaction.
-               public SqlCommand(
-                       String cmdText,
-                       SqlConnection connection,
-                       SqlTransaction transaction)
-                       : base(cmdText, connection, transaction)
-               {
-               }
-
-               #endregion // Constructors
-
-               #region Properties
-
-               protected override string InternalCommandText {
-                       get {
-                               string commandText = CommandText;
-                               if (CommandType != CommandType.StoredProcedure ||
-                                       string.IsNullOrEmpty (commandText) ||
-                                       commandText [0] == '[' ||
-                                       commandText.IndexOf ('.') >= 0)
-                                       return commandText;
-
-                               string trimmedCommandText = commandText.TrimEnd ();
-                               if (trimmedCommandText.Length > 0 && trimmedCommandText [trimmedCommandText.Length - 1] != ')')
-                                       commandText = String.Concat ("[", commandText, "]");
-
-                               return commandText;
-                       }
-               }
-
-               public new SqlConnection Connection
-               {
-                       get { return (SqlConnection)base.Connection; }
-                       set { base.Connection = value; }
-               }
-        
-               public new SqlParameterCollection Parameters
-               {
-                       get { 
-                               return (SqlParameterCollection)base.Parameters; 
-                       }
-               }
-
-               public new SqlTransaction Transaction
-               {
-                       get { return (SqlTransaction)base.Transaction; }
-                       set { base.Transaction = value; }
-               }
-
-#if USE_DOTNET_REGEX
-               protected override Regex StoredProcedureRegExp
-#else
-               protected override java.util.regex.Pattern StoredProcedureRegExp {
-#endif
-                       get { return SqlStatementsHelper.NamedParameterStoredProcedureRegExp; }
-               }
-
-               protected override SimpleRegex ParameterRegExp
-               {
-                       get { return SqlStatementsHelper.NamedParameterRegExp; }
-               }
-
-               #endregion // Properties
-
-               #region Methods
-
-               public XmlReader ExecuteXmlReader() {
-                       return SqlXmlTextReader.Create(ExecuteReader(CommandBehavior.SequentialAccess));
-               }
-
-               public new SqlDataReader ExecuteReader()
-               {
-                       return (SqlDataReader)ExecuteReader(CommandBehavior.Default);
-               }
-
-               public new SqlDataReader ExecuteReader(CommandBehavior behavior)
-               {
-                       return (SqlDataReader)base.ExecuteReader(behavior);
-               }
-
-               public new SqlParameter CreateParameter()
-               {
-                       return (SqlParameter)CreateParameterInternal();
-               }
-
-               protected sealed override void CheckParameters()
-               {
-                       // do nothing
-               }
-
-               protected override AbstractDbParameter GetUserParameter(string parameterName, IList userParametersList, int userParametersListPosition/*,int userParametersListStart,int userParameterListCount*/)
-               {
-//                     Match match = SqlStatementsHelper.NamedParameterRegExp.Match(parameterName);
-//                     parameterName = match.Result("${USERPARAM}");
-//                     if (parameterName.Length == 0)
-//                             return null;
-
-                       for(int i=0; i < userParametersList.Count; i++) {
-                               AbstractDbParameter userParameter = (AbstractDbParameter)userParametersList[i];
-                               if (String.Compare(parameterName, userParameter.Placeholder.Trim(), true, System.Globalization.CultureInfo.InvariantCulture) == 0) {
-                                       return userParameter;
-                               }
-                       }
-
-                       return null;
-               }
-
-               protected override AbstractDbParameter GetReturnParameter (IList userParametersList)
-               {
-                       for(int i=0; i < userParametersList.Count; i++) {
-                               AbstractDbParameter userParameter = (AbstractDbParameter)userParametersList[i];
-                               if (userParameter.Direction == ParameterDirection.ReturnValue) {
-                                       return userParameter;
-                               }
-                       }
-
-                       return null; 
-               }
-
-               protected sealed override DbParameter CreateParameterInternal()
-               {
-                       return new SqlParameter();
-               }
-
-               protected sealed override DbDataReader CreateReader()
-               {
-                       return new SqlDataReader(this);
-               }
-
-               protected sealed override DbParameterCollection CreateParameterCollection(AbstractDbCommand parent)
-               {
-                       return new SqlParameterCollection((SqlCommand)parent);
-               }
-
-               protected internal sealed override SystemException CreateException(SQLException e)
-               {
-                       return new SqlException(e, Connection);
-               }
-
-               #region Asynchronous behavior
-#if NET_2_0
-               [MonoNotSupported ("Asynchronous behavior not implemented")]
-               public IAsyncResult BeginExecuteReader () 
-               {
-                       throw new NotImplementedException ();
-               }
-
-               [MonoNotSupported ("Asynchronous behavior not implemented")]
-               public IAsyncResult BeginExecuteReader (CommandBehavior behavior) 
-               {
-                       throw new NotImplementedException ();
-               }
-
-               [MonoNotSupported ("Asynchronous behavior not implemented")]
-               public IAsyncResult BeginExecuteReader (AsyncCallback callback, Object stateObject) 
-               {
-                       throw new NotImplementedException ();
-               }
-
-               [MonoNotSupported ("Asynchronous behavior not implemented")]
-               public IAsyncResult BeginExecuteReader (AsyncCallback callback, Object stateObject, CommandBehavior behavior) 
-               {
-                       throw new NotImplementedException ();
-               }
-
-               [MonoNotSupported ("Asynchronous behavior not implemented")]
-               public SqlDataReader EndExecuteReader (IAsyncResult asyncResult)
-               {
-                       throw new NotImplementedException ();
-               }
-
-               [MonoNotSupported ("Asynchronous behavior not implemented")]
-               public IAsyncResult BeginExecuteXmlReader () 
-               {
-                       throw new NotImplementedException ();
-               }
-
-               [MonoNotSupported ("Asynchronous behavior not implemented")]
-               public IAsyncResult BeginExecuteXmlReader (AsyncCallback callback, Object stateObject)
-               {
-                       throw new NotImplementedException ();
-               }
-
-               [MonoNotSupported ("Asynchronous behavior not implemented")]
-               public XmlReader EndExecuteXmlReader (IAsyncResult asyncResult)
-               {
-                       throw new NotImplementedException ();
-               }
-
-               [MonoNotSupported ("Asynchronous behavior not implemented")]
-               public IAsyncResult BeginExecuteNonQuery ()
-               {
-                       throw new NotImplementedException ();
-               }
-
-               [MonoNotSupported ("Asynchronous behavior not implemented")]
-               public IAsyncResult BeginExecuteNonQuery (AsyncCallback callback, Object stateObject)
-               {
-                       throw new NotImplementedException ();
-               }
-
-               [MonoNotSupported ("Asynchronous behavior not implemented")]
-               public int EndExecuteNonQuery (IAsyncResult asyncResult)
-               {
-                       throw new NotImplementedException ();
-               }
-#endif
-               #endregion
-               #endregion // Methods
-       }
-}
diff --git a/mcs/class/System.Data/System.Data.SqlClient.jvm/SqlConnection.cs b/mcs/class/System.Data/System.Data.SqlClient.jvm/SqlConnection.cs
deleted file mode 100644 (file)
index bf556bb..0000000
+++ /dev/null
@@ -1,234 +0,0 @@
-//
-// System.Data.SqlClient.SqlConnection
-//
-// Authors:
-//     Konstantin Triger <kostat@mainsoft.com>
-//     Boris Kirzner <borisk@mainsoft.com>
-//     
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System.Data;
-using System.Data.Common;
-using System.Collections;
-using System.Data.ProviderBase;
-
-using java.sql;
-
-using System.Configuration;
-using Mainsoft.Data.Configuration;
-using Mainsoft.Data.Jdbc.Providers;
-
-namespace System.Data.SqlClient
-{
-       public class SqlConnection : AbstractDBConnection
-       {
-               #region Fields
-
-               private const int DEFAULT_PACKET_SIZE = 8192;
-
-               #endregion // Fields
-
-               #region Constructors
-
-               public SqlConnection() : this(null)
-               {
-               }
-
-               public SqlConnection(String connectionString) : base(connectionString)
-               {
-               }
-
-               #endregion // Constructors
-
-               #region Events
-
-               [DataCategory ("InfoMessage")]
-               [DataSysDescription ("Event triggered when messages arrive from the DataSource.")]
-               public event SqlInfoMessageEventHandler InfoMessage;
-
-               #endregion // Events
-
-               #region Properties
-
-               public string WorkstationId
-               {
-                       get { return (string)ConnectionStringBuilder["workstation id"]; }
-               }
-
-               public int PacketSize
-               {
-                       get { 
-                               string packetSize = (string)ConnectionStringBuilder["Packet Size"];
-                               if (packetSize == null || packetSize.Length == 0) {
-                                       return DEFAULT_PACKET_SIZE;
-                               }                               
-                               try {
-                                       return Convert.ToInt32(packetSize);
-                               }
-                               catch(FormatException e) {
-                                       throw ExceptionHelper.InvalidValueForKey("packet size");
-                               }
-                               catch (OverflowException e) {
-                                       throw ExceptionHelper.InvalidValueForKey("packet size");
-                               }
-                       }
-               }
-
-               protected override IConnectionProvider GetConnectionProvider() {
-                       IDictionary conProviderDict = ConnectionStringDictionary.Parse(ConnectionString);
-                       string provider = (string)conProviderDict["Provider"];
-                       if (provider == null)
-                               provider = "SQLCLIENT";
-
-                       return GetConnectionProvider("Mainsoft.Data.Configuration/SqlClientProviders", provider);
-               }
-
-               #endregion // Properties
-
-               #region Methods
-
-               protected override DbTransaction BeginDbTransaction(IsolationLevel isolationLevel) {
-                       return BeginTransaction(isolationLevel);
-               }
-
-               public SqlTransaction BeginTransaction(String transactionName)
-               {
-                       return BeginTransaction(IsolationLevel.ReadCommitted,transactionName);
-               }
-
-               public new SqlTransaction BeginTransaction(IsolationLevel isolationLevel)
-               {
-                       return BeginTransaction(isolationLevel,"Transaction");
-               }
-
-               public new SqlTransaction BeginTransaction()
-               {
-                       return BeginTransaction(IsolationLevel.ReadCommitted);
-               }
-        
-               public SqlTransaction BeginTransaction(IsolationLevel isolationLevel, string transactionName)
-               {
-                       return new SqlTransaction(isolationLevel, this, transactionName);
-               }
-
-               public new SqlCommand CreateCommand()
-               {
-                       return new SqlCommand(this);
-               }
-
-               protected override DbCommand CreateDbCommand() {
-                       return CreateCommand();
-               }
-
-               protected internal sealed override void OnSqlWarning(SQLWarning warning)
-               {
-                       SqlErrorCollection col = new SqlErrorCollection(warning, this);
-                       OnSqlInfoMessage(new SqlInfoMessageEventArgs(col));
-               }
-
-               protected sealed override SystemException CreateException(SQLException e)
-               {
-                       return new SqlException(e, this);               
-               }
-
-               protected sealed override SystemException CreateException(string message)
-               {
-                       return new SqlException(message, null, this);           
-               }
-
-               private void OnSqlInfoMessage (SqlInfoMessageEventArgs value)
-               {
-                       if (InfoMessage != null) {
-                               InfoMessage (this, value);
-                       }
-               }
-
-#if NET_2_0
-
-               [MonoNotSupported("")]
-               public static void ChangePassword (string connectionString, string newPassword) 
-               {
-                       throw new NotImplementedException ();
-
-                       // FIXME: refactored from Mono implementation.  Not finished!!!
-                       if (connectionString == null || newPassword == null || newPassword == String.Empty)
-                               throw new ArgumentNullException ();
-                       if (newPassword.Length > 128)
-                               throw new ArgumentException ("The value of newPassword exceeds its permittable length which is 128");
-
-                       SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder (connectionString);
-                       if (builder.IntegratedSecurity) {
-                               throw new ArgumentException ("Can't use integrated security when changing password");
-                       }
-                       
-                       using (SqlConnection conn = new SqlConnection (connectionString)) {
-                               conn.Open ();
-                               SqlCommand cmd = conn.CreateCommand ();
-                               cmd.CommandText = "sp_password";
-                               cmd.CommandType = CommandType.StoredProcedure;
-                               // FIXME: Need to extract old password and user from our structures
-                               // of the connectionString.
-                               cmd.Parameters.Add (builder.Password); // Is this good???
-                               cmd.Parameters.Add (newPassword);
-                               cmd.Parameters.Add (builder.UserID); // Is this good???
-                               cmd.ExecuteNonQuery();
-                       }
-               }
-
-               #region Pooling
-
-               [MonoNotSupported("Pooling not supported")]
-               public static void ClearPool (SqlConnection connection) 
-               {
-                       throw new NotImplementedException ();
-               }
-
-               [MonoNotSupported ("Pooling not supported")]
-               public static void ClearAllPools () 
-               {
-                       throw new NotImplementedException ();
-               }
-
-               #endregion
-               #region Statistics
-
-               [MonoNotSupported ("Statistics not supported")]
-               public IDictionary RetrieveStatistics ()
-               {
-                       throw new NotImplementedException ();
-               }
-
-               [MonoNotSupported ("Statistics not supported")]
-               public void ResetStatistics ()
-               {
-                       throw new NotImplementedException ();
-               }
-
-               #endregion
-#endif
-               #endregion // Methods
-
-       }
-}
diff --git a/mcs/class/System.Data/System.Data.SqlClient.jvm/SqlConvert.cs b/mcs/class/System.Data/System.Data.SqlClient.jvm/SqlConvert.cs
deleted file mode 100644 (file)
index 17d9db2..0000000
+++ /dev/null
@@ -1,243 +0,0 @@
-//\r
-// System.Data.SqlClient.SqlConvert\r
-//\r
-//\r
-// Authors:\r
-//     Konstantin Triger <kostat@mainsoft.com>\r
-//     Boris Kirzner <borisk@mainsoft.com>\r
-//     \r
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)\r
-//\r
-\r
-//\r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-// \r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-//\r
-\r
-using System;\r
-using System.Data.Common;\r
-using System.Data.ProviderBase;\r
-\r
-using java.sql;\r
-\r
-namespace System.Data.SqlClient\r
-{\r
-       internal sealed class SqlConvert : DbConvert\r
-       {\r
-               #region Methods\r
-\r
-               internal static String JdbcTypeNameToDbTypeName(string jdbcTypeName)\r
-               {\r
-                       return jdbcTypeName.Trim();\r
-               }\r
-\r
-               internal static SqlDbType JdbcTypeToSqlDbType(int jdbcType)\r
-               {\r
-                       // FIXME : other java.sql.Type\r
-                       // Types.ARRAY\r
-                       if(Types.BIGINT == jdbcType) return SqlDbType.BigInt;\r
-                       if(Types.BINARY == jdbcType) return SqlDbType.Binary;\r
-                       if(Types.BIT == jdbcType) return SqlDbType.Bit;\r
-                       if(Types.BLOB == jdbcType) return SqlDbType.Binary;\r
-                       // Types.BOOLEAN\r
-                       if(Types.CHAR == jdbcType) return SqlDbType.Char;\r
-                       if(Types.CLOB == jdbcType) return SqlDbType.Binary;\r
-                       if(Types.DATE == jdbcType) return SqlDbType.DateTime;\r
-                       if(Types.DECIMAL == jdbcType) return SqlDbType.Decimal;\r
-                       // Types.DISTINCT\r
-                       if(Types.DOUBLE == jdbcType) return SqlDbType.Float;\r
-                       if(Types.FLOAT == jdbcType) return SqlDbType.Float;\r
-                       if(Types.INTEGER == jdbcType) return SqlDbType.Int;\r
-                       // Types.JAVA_OBJECT\r
-                       if(Types.LONGVARBINARY == jdbcType) return SqlDbType.Image;\r
-                       if(Types.LONGVARCHAR == jdbcType) return SqlDbType.Text;\r
-                       // Types.NULL\r
-                       if(Types.NUMERIC == jdbcType) return SqlDbType.Decimal;\r
-                       if(Types.REAL == jdbcType) return SqlDbType.Real;\r
-                       // Types.REF\r
-                       if(Types.SMALLINT == jdbcType) return SqlDbType.SmallInt;\r
-                       // Types.STRUCT\r
-                       if(Types.TIME == jdbcType) return SqlDbType.DateTime;\r
-                       if(Types.TIMESTAMP == jdbcType) return SqlDbType.DateTime;\r
-                       if(Types.TINYINT == jdbcType) return SqlDbType.TinyInt;\r
-                       if(Types.VARBINARY == jdbcType) return SqlDbType.VarBinary;\r
-                       if(Types.VARCHAR == jdbcType) return SqlDbType.NVarChar;\r
-                       return SqlDbType.Variant;\r
-               }\r
-\r
-               internal static SqlDbType ValueTypeToSqlDbType(Type type)\r
-               {\r
-                       switch (Type.GetTypeCode(type)) {\r
-                               case TypeCode.Boolean: return SqlDbType.Bit;\r
-                               case TypeCode.Byte: return SqlDbType.TinyInt;\r
-                               case TypeCode.Char: return SqlDbType.Char;\r
-                               case TypeCode.DateTime: return SqlDbType.DateTime;\r
-                               case TypeCode.DBNull: return SqlDbType.Variant;\r
-                               case TypeCode.Decimal: return SqlDbType.Decimal;\r
-                               case TypeCode.Double: return SqlDbType.Float;\r
-                               case TypeCode.Empty: return SqlDbType.Variant;\r
-                               case TypeCode.Int16: return SqlDbType.SmallInt;\r
-                               case TypeCode.Int32: return SqlDbType.Int;\r
-                               case TypeCode.Int64: return SqlDbType.BigInt;\r
-                               default:\r
-                               case TypeCode.Object: {\r
-                                       if (type.Equals(DbTypes.TypeOfByteArray)) return  SqlDbType.VarBinary;\r
-                                       //if (type.Equals(DbTypes.TypeOfTimespan)) return OleDbType.DBTime;\r
-                                       if (type.Equals(DbTypes.TypeOfGuid)) return SqlDbType.UniqueIdentifier;\r
-\r
-                                       if (type.IsEnum)\r
-                                               return ValueTypeToSqlDbType (Enum.GetUnderlyingType (type));\r
-\r
-                                       return SqlDbType.Variant;\r
-                               }\r
-                               case TypeCode.SByte: return SqlDbType.TinyInt;\r
-                               case TypeCode.Single: return SqlDbType.Float;\r
-                               case TypeCode.String: return SqlDbType.NVarChar;\r
-                               case TypeCode.UInt16: return SqlDbType.SmallInt;\r
-                               case TypeCode.UInt32: return SqlDbType.Int;\r
-                               case TypeCode.UInt64: return SqlDbType.BigInt;\r
-                       }\r
-               }\r
-\r
-               internal static Type SqlDbTypeToValueType(SqlDbType sqlDbType)\r
-               {\r
-                       switch (sqlDbType) {\r
-                               case SqlDbType.BigInt : return typeof(long);\r
-                               case SqlDbType.Binary : return typeof(byte[]);\r
-                               case SqlDbType.Bit : return typeof(bool);\r
-                               case SqlDbType.Char : return typeof(string);\r
-                               case SqlDbType.DateTime : return typeof(DateTime);\r
-                               case SqlDbType.Decimal : return typeof(decimal);\r
-                               case SqlDbType.Float : return typeof(double);\r
-                               case SqlDbType.Image : return typeof(byte[]);\r
-                               case SqlDbType.Int : return typeof(int);\r
-                               case SqlDbType.Money : return typeof(decimal);\r
-                               case SqlDbType.NChar : return typeof(string);\r
-                               case SqlDbType.NText : return typeof(string);\r
-                               case SqlDbType.NVarChar : return typeof(string);\r
-                               case SqlDbType.Real : return typeof(Single);\r
-                               case SqlDbType.UniqueIdentifier : return typeof(Guid);\r
-                               case SqlDbType.SmallDateTime : return typeof(DateTime);\r
-                               case SqlDbType.SmallInt : return typeof(Int16);\r
-                               case SqlDbType.SmallMoney : return typeof(decimal);\r
-                               case SqlDbType.Text : return typeof(string);\r
-                               case SqlDbType.Timestamp : return typeof(byte[]);\r
-                               case SqlDbType.TinyInt : return typeof(byte);\r
-                               case SqlDbType.VarBinary : return typeof(byte[]);\r
-                               case SqlDbType.VarChar : return typeof(string);\r
-                               case SqlDbType.Variant : return typeof(object);\r
-                               default : throw ExceptionHelper.InvalidSqlDbType((int)sqlDbType);\r
-                       }\r
-               }\r
-\r
-               internal static SqlDbType DbTypeToSqlDbType(DbType dbType)\r
-               {\r
-                       switch (dbType) {\r
-                               case DbType.AnsiString : return SqlDbType.VarChar;\r
-                               case DbType.Binary : return SqlDbType.VarBinary;\r
-                               case DbType.Byte : return SqlDbType.TinyInt;\r
-                               case DbType.Boolean : return SqlDbType.Bit;\r
-                               case DbType.Currency : return SqlDbType.Money;\r
-                               case DbType.Date : return SqlDbType.DateTime;\r
-                               case DbType.DateTime : return SqlDbType.DateTime;\r
-                               case DbType.Decimal : return SqlDbType.Decimal;\r
-                               case DbType.Double : return SqlDbType.Float;\r
-                               case DbType.Guid : return SqlDbType.UniqueIdentifier;\r
-                               case DbType.Int16 : return SqlDbType.SmallInt;\r
-                               case DbType.Int32 : return SqlDbType.Int;\r
-                               case DbType.Int64 : return SqlDbType.BigInt;\r
-                               case DbType.Object : return SqlDbType.Variant;\r
-                               case DbType.SByte : throw ExceptionHelper.UnknownDataType(dbType.ToString(),"SqlDbType");\r
-                               case DbType.Single : return SqlDbType.Real;\r
-                               case DbType.String : return SqlDbType.NVarChar;\r
-                               case DbType.UInt16 : throw ExceptionHelper.UnknownDataType(dbType.ToString(),"SqlDbType");\r
-                               case DbType.UInt32 : throw ExceptionHelper.UnknownDataType(dbType.ToString(),"SqlDbType");\r
-                               case DbType.UInt64 : throw ExceptionHelper.UnknownDataType(dbType.ToString(),"SqlDbType");\r
-                               case DbType.VarNumeric : throw ExceptionHelper.UnknownDataType(dbType.ToString(),"SqlDbType");\r
-                               case DbType.AnsiStringFixedLength : return SqlDbType.Char;\r
-                               case DbType.StringFixedLength : return SqlDbType.NChar;\r
-                               default : throw ExceptionHelper.InvalidDbType((int)dbType);\r
-                       }\r
-               }\r
-\r
-               internal static DbType SqlDbTypeToDbType(SqlDbType sqlDbType)\r
-               {\r
-                       switch (sqlDbType) {\r
-                               case SqlDbType.BigInt : return DbType.Int64;\r
-                               case SqlDbType.Binary : return DbType.Binary;\r
-                               case SqlDbType.Bit : return DbType.Boolean;\r
-                               case SqlDbType.Char : return DbType.AnsiStringFixedLength;\r
-                               case SqlDbType.DateTime : return DbType.DateTime;\r
-                               case SqlDbType.Decimal : return DbType.Decimal;\r
-                               case SqlDbType.Float : return DbType.Double;\r
-                               case SqlDbType.Image : return DbType.Binary;\r
-                               case SqlDbType.Int : return DbType.Int32;\r
-                               case SqlDbType.Money : return DbType.Currency;\r
-                               case SqlDbType.NChar : return DbType.StringFixedLength;\r
-                               case SqlDbType.NText : return DbType.String;\r
-                               case SqlDbType.NVarChar : return DbType.String;\r
-                               case SqlDbType.Real : return DbType.Single;\r
-                               case SqlDbType.UniqueIdentifier : return DbType.Guid;\r
-                               case SqlDbType.SmallDateTime : return DbType.DateTime;\r
-                               case SqlDbType.SmallInt : return DbType.Int16;\r
-                               case SqlDbType.SmallMoney : return DbType.Currency;\r
-                               case SqlDbType.Text : return DbType.AnsiString;\r
-                               case SqlDbType.Timestamp : return DbType.Binary;\r
-                               case SqlDbType.TinyInt : return DbType.Byte;\r
-                               case SqlDbType.VarBinary : return DbType.Binary;\r
-                               case SqlDbType.VarChar : return DbType.AnsiString;\r
-                               case SqlDbType.Variant : return DbType.Object;\r
-                               default : throw ExceptionHelper.InvalidSqlDbType((int)sqlDbType);\r
-                       }\r
-               }\r
-\r
-               internal static int     SqlDbTypeToJdbcType(SqlDbType sqlDbType)\r
-               {\r
-                       switch(sqlDbType) {\r
-                               case SqlDbType.BigInt : return Types.BIGINT;\r
-                               case SqlDbType.Binary : return Types.BINARY;\r
-                               case SqlDbType.Bit : return Types.BIT;\r
-                               case SqlDbType.Char : return Types.CHAR;\r
-                               case SqlDbType.DateTime : return Types.TIMESTAMP;\r
-                               case SqlDbType.Decimal : return Types.DECIMAL;\r
-                               case SqlDbType.Float : return Types.FLOAT;\r
-                               case SqlDbType.Image : return Types.LONGVARBINARY;\r
-                               case SqlDbType.Int : return Types.INTEGER;\r
-                               case SqlDbType.Money : return Types.DECIMAL;\r
-                               case SqlDbType.NChar : return Types.CHAR;\r
-                               case SqlDbType.NText : return Types.LONGVARCHAR;\r
-                               case SqlDbType.NVarChar : return Types.VARCHAR;\r
-                               case SqlDbType.Real : return Types.REAL;\r
-                               case SqlDbType.UniqueIdentifier : return Types.CHAR;\r
-                               case SqlDbType.SmallDateTime : return Types.DATE;\r
-                               case SqlDbType.SmallInt : return Types.SMALLINT;\r
-                               case SqlDbType.SmallMoney : return Types.DECIMAL;\r
-                               case SqlDbType.Text : return Types.LONGVARCHAR;\r
-                               case SqlDbType.Timestamp : return Types.TIMESTAMP;\r
-                               case SqlDbType.TinyInt : return Types.TINYINT;\r
-                               case SqlDbType.VarBinary : return Types.VARBINARY;\r
-                               case SqlDbType.VarChar : return Types.VARCHAR;\r
-                               case SqlDbType.Variant : return Types.VARCHAR; // note : ms jdbc driver recognize this sqlserver as varchar\r
-                               default : throw ExceptionHelper.InvalidSqlDbType((int)sqlDbType);\r
-                       }\r
-               }\r
-\r
-               #endregion // Methods\r
-       }\r
-}\r
diff --git a/mcs/class/System.Data/System.Data.SqlClient.jvm/SqlDataReader.cs b/mcs/class/System.Data/System.Data.SqlClient.jvm/SqlDataReader.cs
deleted file mode 100644 (file)
index 83dedec..0000000
+++ /dev/null
@@ -1,335 +0,0 @@
-//
-// System.Data.SqlClient.SqlDataReader
-//
-// Authors:
-//     Konstantin Triger <kostat@mainsoft.com>
-//     Boris Kirzner <borisk@mainsoft.com>
-//     
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System.Data.SqlTypes;
-using System.Data.ProviderBase;
-
-using java.sql;
-
-namespace System.Data.SqlClient
-{
-    public class SqlDataReader : AbstractDataReader
-    {
-
-               #region Constructors
-
-               internal SqlDataReader(SqlCommand command) : base(command)
-        {
-        }
-
-               #endregion // Constructors
-
-               #region Properties
-
-               #endregion // Properties
-
-               #region Methods
-
-               protected sealed override SystemException CreateException(string message, SQLException e)
-               {
-                       return new SqlException(message, e, (SqlConnection)_command.Connection);                
-               }
-
-               protected sealed override SystemException CreateException(java.io.IOException e)
-               {
-                       return new SqlException(e, (SqlConnection)_command.Connection);
-               }
-
-               public override String GetDataTypeName(int columnIndex)
-               {
-                       try {
-                               string jdbcTypeName = Results.getMetaData().getColumnTypeName(columnIndex + 1);
-                               
-                               return SqlConvert.JdbcTypeNameToDbTypeName(jdbcTypeName);
-                       }
-                       catch (SQLException e) {
-                               throw CreateException(e);
-                       }
-               }
-
-               protected override int GetProviderType(int jdbcType)
-               {
-                       return (int)SqlConvert.JdbcTypeToSqlDbType(jdbcType);   
-               }
-
-        // Gets the value of the specified column as a SqlBinary.
-        public SqlBinary GetSqlBinary(int columnIndex)
-        {
-                       byte[] bytes = GetBytes(columnIndex);
-            if(IsDBNull(columnIndex)) {
-                               return SqlBinary.Null;
-                       }
-            else {
-                               return new SqlBinary(bytes);
-            }
-        }
-
-        // Gets the value of the specified column as a SqlBoolean.
-        public SqlBoolean GetSqlBoolean(int columnIndex)
-        {
-                       bool boolean = GetBoolean(columnIndex);
-            if(IsDBNull(columnIndex)) {
-                return SqlBoolean.Null;
-                       }
-                       else {
-                               return new SqlBoolean(boolean);
-            }
-        }
-
-        // Gets the value of the specified column as a SqlByte.
-        public SqlByte GetSqlByte(int columnIndex)
-        {
-                       byte byt = GetByte(columnIndex);
-            if(IsDBNull(columnIndex)) {
-                return SqlByte.Null;
-                       }
-            else {
-                return new SqlByte(byt);
-            }
-        }
-
-#if NET_2_0
-
-               public virtual SqlBytes GetSqlBytes (int columnIndex)
-               {
-                       byte [] bytes = GetBytes (columnIndex);
-                       if (IsDBNull (columnIndex)) {
-                               return SqlBytes.Null;
-                       }
-                       else {
-                               return new SqlBytes (bytes);
-                       }
-               }
-
-               public virtual SqlChars GetSqlChars (int columnIndex)
-               {
-                       SqlString sqlStr = GetSqlString (columnIndex);
-                       if (sqlStr.IsNull) {
-                               return SqlChars.Null;
-                       }
-                       else {
-                               return new SqlChars (sqlStr);
-                       }
-               }
-
-               [MonoNotSupported("SqlXml is not fully implemented")]
-               public virtual SqlXml GetSqlXml (int columnIndex)
-               {
-                       throw new NotImplementedException ();
-               }
-
-#endif
-
-        // Gets the value of the specified column as a SqlDecimal.
-        public SqlDecimal GetSqlDecimal(int columnIndex)
-        {
-                       decimal dec = GetDecimal(columnIndex);
-            if(IsDBNull(columnIndex)) {
-                return SqlDecimal.Null;
-                       }
-            else {
-                return new SqlDecimal(dec);
-            }
-        }
-
-        // Gets the value of the specified column as a SqlDateTime.
-        public SqlDateTime GetSqlDateTime(int columnIndex)
-        {
-                       DateTime dateTime = GetDateTime(columnIndex);
-            if(IsDBNull(columnIndex)) {
-                return SqlDateTime.Null;
-                       }
-            else {
-                return new SqlDateTime(dateTime);
-            }
-        }
-
-        // Gets the value of the specified column as a SqlDouble.
-        public SqlDouble GetSqlDouble(int columnIndex)
-        {
-                       double doubl = GetDouble(columnIndex);
-            if(IsDBNull(columnIndex)) {
-                return SqlDouble.Null;
-                       }
-            else {
-                return new SqlDouble(doubl);
-            }
-        }
-
-        // Gets the value of the specified column as a SqlInt16.
-        public SqlInt16 GetSqlInt16(int columnIndex)
-        {
-                       short s = GetInt16(columnIndex);
-            if(IsDBNull(columnIndex)) {
-                return SqlInt16.Null;
-                       }
-            else {
-                return new SqlInt16(s);
-            }
-        }
-
-        // Gets the value of the specified column as a SqlInt32.
-        public SqlInt32 GetSqlInt32(int columnIndex)
-        {
-                       int i = GetInt32(columnIndex);
-            if(IsDBNull(columnIndex)) {
-                return SqlInt32.Null;
-                       }
-            else {
-                return new SqlInt32(i);
-            }
-        }
-
-        // Gets the value of the specified column as a SqlInt64.
-        public SqlInt64 GetSqlInt64(int columnIndex)
-        {
-                       long l = GetInt64(columnIndex);
-            if(IsDBNull(columnIndex)) {
-                return SqlInt64.Null;
-                       }
-            else {
-                return new SqlInt64(l);
-            }
-        }
-
-        // Gets the value of the specified column as a SqlMoney.
-        public SqlMoney GetSqlMoney(int columnIndex)
-        {
-                       decimal dec = GetDecimal(columnIndex);
-            if(IsDBNull(columnIndex)) {
-                return SqlMoney.Null;
-                       }
-                       else {
-                               return new SqlMoney(dec);
-                       }
-        }
-
-        // Gets the value of the specified column as a SqlSingle.
-        public SqlSingle GetSqlSingle(int columnIndex)
-        {
-                       float f = GetFloat(columnIndex);
-            if(IsDBNull(columnIndex)) {
-                return SqlSingle.Null;
-                       }
-            else {
-                return new SqlSingle(f);
-            }
-        }
-
-        // Gets the value of the specified column as a SqlString.
-        public SqlString GetSqlString(int columnIndex)
-        {
-                       string str = GetString(columnIndex);
-            if(IsDBNull(columnIndex)) {
-                return SqlString.Null;
-                       }
-            else {
-                return new SqlString(str);
-            }
-        }
-
-               // Gets the value of the specified column as a SqlGuid.
-        public SqlGuid GetSqlGuid(int columnIndex)
-        {
-                       object obj = GetValue(columnIndex);
-            if(IsDBNull(columnIndex)) {
-                return SqlGuid.Null;
-                       }
-            else {
-                               if (obj is byte[]) {
-                                       return new SqlGuid((byte[])obj);
-                               }
-                               else {
-                                       return new SqlGuid((string)obj);
-                               }
-            }
-        }
-
-               // Gets all the attribute columns in the current row.
-        public int GetSqlValues(Object[] values)
-        {
-            int columnCount = FieldCount;
-            int i = 0;
-            for (; i < values.Length && i < columnCount; i++) {
-                values[i] = GetSqlValue(i);
-            }
-            return i;
-        }
-
-               // Gets an Object that is a representation of the underlying SqlDbType Variant.
-        public Object GetSqlValue(int columnIndex)
-        {
-            try {
-                               int jdbcType = ResultsMetaData.getColumnType(columnIndex + 1);
-                               SqlDbType sqlDbType = SqlConvert.JdbcTypeToSqlDbType(jdbcType);
-
-                               switch (sqlDbType) {
-                                       case SqlDbType.BigInt : return GetSqlInt64(columnIndex);
-                                       case SqlDbType.Binary : return GetSqlBinary(columnIndex);
-                                       case SqlDbType.Bit : return GetSqlBoolean(columnIndex);
-                                       case SqlDbType.Char : return GetSqlString(columnIndex);
-                                       case SqlDbType.DateTime : return GetSqlDateTime(columnIndex);
-                                       case SqlDbType.Decimal : return GetSqlDecimal(columnIndex);
-                                       case SqlDbType.Float : return GetSqlDouble(columnIndex);
-                                       case SqlDbType.Image : return GetSqlBinary(columnIndex);
-                                       case SqlDbType.Int : return GetSqlInt32(columnIndex);
-                                       case SqlDbType.Money : return GetSqlDecimal(columnIndex);
-                                       case SqlDbType.NChar : return GetSqlString(columnIndex);
-                                       case SqlDbType.NText : return GetSqlString(columnIndex);
-                                       case SqlDbType.NVarChar : return GetSqlString(columnIndex);
-                                       case SqlDbType.Real : return GetSqlSingle(columnIndex);
-                                       case SqlDbType.UniqueIdentifier : return GetSqlGuid(columnIndex);
-                                       case SqlDbType.SmallDateTime : return GetSqlDateTime(columnIndex);
-                                       case SqlDbType.SmallInt : return GetSqlInt16(columnIndex);
-                                       case SqlDbType.SmallMoney : return GetSqlDecimal(columnIndex);
-                                       case SqlDbType.Text : return GetSqlString(columnIndex);
-                                       case SqlDbType.Timestamp : return GetSqlDateTime(columnIndex);
-                                       case SqlDbType.TinyInt : return GetSqlByte(columnIndex);
-                                       case SqlDbType.VarBinary : return GetSqlBinary(columnIndex);
-                                       case SqlDbType.VarChar : return GetSqlString(columnIndex);
-                                       case SqlDbType.Variant : return GetValue(columnIndex);
-                                       default : return GetValue(columnIndex);
-                               }
-            }
-            catch (SQLException exp) {
-                throw new Exception(exp.Message);
-            }
-        }
-
-#if NET_2_0
-               protected bool IsCommandBehavior (CommandBehavior condition)
-               {
-                       return (_command.Behavior & condition) == condition;
-               }
-#endif
-               #endregion // Methods
-    }
-}
\ No newline at end of file
diff --git a/mcs/class/System.Data/System.Data.SqlClient.jvm/SqlError.cs b/mcs/class/System.Data/System.Data.SqlClient.jvm/SqlError.cs
deleted file mode 100644 (file)
index 7099ebc..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-//
-// System.Data.SqlClient.SqlError
-//
-// Authors:
-//     Konstantin Triger <kostat@mainsoft.com>
-//     Boris Kirzner <borisk@mainsoft.com>
-//     
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-namespace System.Data.SqlClient
-{
-       using System.Data.ProviderBase;
-       using java.sql;
-       using System.Data.Common;
-
-    /**
-     * Collects information relevant to a warning or error returned by SQL Server.
-     */
-
-       [Serializable]
-    public class SqlError : AbstractDbError
-    {
-               string _serverVersion;
-        /**
-         * Initialize SqlError object
-         * */
-        internal SqlError(SQLException e, AbstractDBConnection connection) : base(e, connection)
-        {
-                       if (connection != null)
-                               _serverVersion = connection.ServerVersion;
-        }
-
-        /**
-         * Overridden. Gets the complete text of the error message.
-         *
-         * @return A string representation of the current object.
-         */
-        public override String ToString()
-        {
-            return String.Concat("SqlError:", Message, _e.StackTrace);
-        }
-
-        /**
-         * Gets the name of the provider that generated the error.
-         *
-         * @return The name of the provider
-         */
-        public String Source
-        {
-            get
-            {
-                return DbSource;
-            }
-        }
-
-        /**
-         * Gets a number that identifies the type of error.
-         *
-         * @return Number of the error
-         */
-        public int Number
-        {
-            get
-            {
-                return DbErrorCode;
-            }
-        }
-
-        /**
-         * Gets a numeric error code from SQL Server that represents an error,
-         * warning or "no data found" message. For more information on how to
-         * decode these values, see SQL Server Books Online.
-         *
-         * @return Error Code
-         */
-        public byte State
-        {
-            get
-            {
-                return 0; // & BitConstants.ALL_BYTE;
-            }
-        }
-
-        /**
-         * Gets the severity level of the error returned from SQL Server.
-         *
-         * @return Severity level of the error
-         */
-        public byte Class
-        {
-            get
-            {
-                return 0; // & BitConstants.ALL_BYTE;
-            }
-        }
-
-        /**
-         * Gets the name of the instance of SQL Server that generated the error.
-         *
-         * @return The name of the server
-         */
-        public String Server
-        {
-            get
-            {
-                return _serverVersion;
-            }
-        }
-
-        /**
-         * Gets the text describing the error.
-         *
-         * @return The text describing the error
-         */
-        public String Message
-        {
-            get
-            {
-                return DbMessage;
-            }
-        }
-
-        /**
-         * Gets the name of the stored procedure or remote procedure call (RPC)
-         * that generated the error.
-         *
-         * @return The name of stored procedure that generated the error.
-         */
-        public String Procedure
-        {
-            get
-            {
-                return null;
-            }
-        }
-
-        /**
-         * Bets the line number within the Transact-SQL command batch or stored
-         * procedure that contains the error.
-         *
-         * @return Line number of error in stored procedure
-         */
-        public int LineNumber
-        {
-            get
-            {
-                return 0;
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/mcs/class/System.Data/System.Data.SqlClient.jvm/SqlErrorCollection.cs b/mcs/class/System.Data/System.Data.SqlClient.jvm/SqlErrorCollection.cs
deleted file mode 100644 (file)
index 68c5651..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-//
-// System.Data.SqlClient.SqlErrorCollection
-//
-// Authors:
-//     Konstantin Triger <kostat@mainsoft.com>
-//     Boris Kirzner <borisk@mainsoft.com>
-//     
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-namespace System.Data.SqlClient
-{
-
-    /**
-     * Collects all errors generated by the SQL .NET Data Provider.
-     */
-
-    using System.Collections;
-       using System.Data.Common;
-       using System.Data.ProviderBase;
-       using java.sql;
-
-
-       [Serializable]
-    public class SqlErrorCollection : AbstractDbErrorCollection
-    {
-               internal SqlErrorCollection(SQLException e, AbstractDBConnection connection) : base(e, connection) {}
-        /**
-         * Gets the error at the specified index.
-         *
-         * @param index of the error
-         * @return Error on specified index
-         */
-        public SqlError this[int index]
-        {
-            get
-            {
-                return (SqlError)GetDbItem(index);
-            }
-        }
-
-#if NET_2_0
-               public void CopyTo (SqlError [] array, int index)
-               {
-                       base.CopyTo (array, index);
-               }
-
-#endif
-
-               protected override AbstractDbError CreateDbError(java.sql.SQLException e, AbstractDBConnection connection) {
-                       return new SqlError(e, connection);
-               }
-
-        
-    }
-}
\ No newline at end of file
diff --git a/mcs/class/System.Data/System.Data.SqlClient.jvm/SqlException.cs b/mcs/class/System.Data/System.Data.SqlClient.jvm/SqlException.cs
deleted file mode 100644 (file)
index a197c3f..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-//\r
-// System.Data.SqlClient.SqlException\r
-//\r
-// Authors:\r
-//     Konstantin Triger <kostat@mainsoft.com>\r
-//     Boris Kirzner <borisk@mainsoft.com>\r
-//     \r
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)\r
-//\r
-\r
-//\r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-// \r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-//\r
-\r
-namespace System.Data.SqlClient\r
-{\r
-\r
-    using java.sql;\r
-\r
-    using System;\r
-       using System.Data.ProviderBase;\r
-\r
-    /**\r
-     * The exception that is thrown when SQL Server returns a warning or error.\r
-     * This class cannot be inherited.\r
-     */\r
-\r
-    /*\r
-    * CURRENT LIMITATIONS\r
-    * 1. Constructor for serialization SqlException(SerializationInfo info, StreamingContext sc) \r
-    *    is not supported.\r
-    * 2. Method "void GetObjectData(...,...)" is not supported (serialization)\r
-    */\r
-\r
-    public sealed class SqlException : AbstractDbException\r
-    {\r
-               internal SqlException(Exception cause, SqlConnection connection) : base(cause, connection) {}\r
-\r
-               internal SqlException(SQLException cause, SqlConnection connection) : base(cause, connection) {}\r
-\r
-               internal SqlException(string message, SQLException cause, SqlConnection connection) : base(message, cause, connection) {}\r
-\r
-               protected override AbstractDbErrorCollection DbErrors {\r
-                       get {\r
-                               return Errors;\r
-                       }\r
-               }\r
-\r
-        \r
-\r
-        /**\r
-         * Gets the severity level of the error returned from the SQL Server .NET \r
-         * Data Provider.\r
-         * @return severity level of the first error in the collection.\r
-         */\r
-        public byte Class\r
-        {\r
-            get\r
-            {\r
-                               SqlErrorCollection errors = Errors;\r
-                               return errors.Count > 0 ? errors[0].Class : (byte)0;\r
-            }\r
-        }\r
-\r
-        /**\r
-         * Gets a collection of one or more SqlError objects that give detailed \r
-         * information about exceptions generated by the SQL Server .NET Data Provider.\r
-         * @return collection of SqlError objects\r
-         */\r
-        public SqlErrorCollection Errors\r
-        {\r
-            get\r
-            {\r
-                return new SqlErrorCollection(_cause, _connection);\r
-            }\r
-        }\r
-\r
-        /**\r
-         * Gets the line number within the Transact-SQL command batch or stored \r
-         * procedure that generated the error.\r
-         * @return line number of the first error in the collection.\r
-         */\r
-        public int LineNumber\r
-        {\r
-            get\r
-            {\r
-                               SqlErrorCollection errors = Errors;\r
-                               return errors.Count > 0 ? errors[0].LineNumber : 0;\r
-            }\r
-        }\r
-\r
-        /**\r
-         * Gets a number that identifies the type of error.\r
-         * @return number that identifies the type of first error in the collection\r
-         */\r
-        public int Number\r
-        {\r
-            get\r
-            {\r
-                               SqlErrorCollection errors = Errors;\r
-                               return errors.Count > 0 ? errors[0].Number : 0;\r
-            }\r
-        }\r
-\r
-        /**\r
-         * Gets the name of the stored procedure or remote procedure call (RPC) \r
-         * that generated the error.\r
-         * @return name of the stored procedure \r
-         */\r
-        public String Procedure\r
-        {\r
-            get\r
-            {\r
-                               SqlErrorCollection errors = Errors;\r
-                               return errors.Count > 0 ? errors[0].Procedure : null;\r
-            }\r
-        }\r
-\r
-        /**\r
-         * Gets the name of the computer running an instance of SQL Server \r
-         * that generated the error.\r
-         * @return name of the computer where error generated\r
-         */\r
-        public String Server\r
-        {\r
-            get\r
-            {\r
-                               SqlErrorCollection errors = Errors;\r
-                               return errors.Count > 0 ? errors[0].Server : null;\r
-            }\r
-        }\r
-\r
-\r
-        /**\r
-         * Gets a numeric error code from SQL Server that represents an error, \r
-         * warning or "no data found" message. \r
-         * @return numeric error code from SQL Server\r
-         */\r
-        public byte State\r
-        {\r
-            get\r
-            {\r
-                               SqlErrorCollection errors = Errors;\r
-                               return errors.Count > 0 ? errors[0].State : (byte)0;\r
-            }\r
-        }\r
-    }\r
-}
\ No newline at end of file
diff --git a/mcs/class/System.Data/System.Data.SqlClient.jvm/SqlParameter.cs b/mcs/class/System.Data/System.Data.SqlClient.jvm/SqlParameter.cs
deleted file mode 100644 (file)
index 9315e7d..0000000
+++ /dev/null
@@ -1,270 +0,0 @@
-//
-// System.Data.SqlClient.SqlParameter
-//
-// Authors:
-//     Konstantin Triger <kostat@mainsoft.com>
-//     Boris Kirzner <borisk@mainsoft.com>
-//     
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections;
-using System.Data;
-using System.Data.ProviderBase;
-using System.Data.Common;
-
-using java.sql;
-
-namespace System.Data.SqlClient
-{
-       public sealed class SqlParameter : AbstractDbParameter
-       {
-               #region Fields
-
-               private SqlDbType _sqlDbType;
-
-               #endregion // Fields
-
-               #region Constructors
-
-               public SqlParameter()
-               {
-               }
-
-               public SqlParameter(String parameterName, Object value)
-                       : this(parameterName, SqlDbType.NVarChar, 0, ParameterDirection.Input, false, 0, 0, String.Empty, DataRowVersion.Current, value,false)
-               {
-               }
-
-               public SqlParameter(String parameterName, SqlDbType dbType)
-                       : this(parameterName, dbType, 0, ParameterDirection.Input, false, 0, 0, String.Empty, DataRowVersion.Current, null, true)
-               {
-               }
-
-        
-               public SqlParameter(String parameterName, SqlDbType dbType, int size)
-                       : this(parameterName, dbType, size, ParameterDirection.Input, false, 0, 0, String.Empty, DataRowVersion.Current, null, true)
-               {
-               }
-
-
-               public SqlParameter(String parameterName, SqlDbType dbType, int size, String sourceColumn)
-                       : this(parameterName, dbType, size, ParameterDirection.Input, false, 0, 0, sourceColumn, DataRowVersion.Current, null, true)
-               {
-               }
-
-        
-               public SqlParameter(
-                       String parameterName,
-                       SqlDbType dbType,
-                       int size,
-                       ParameterDirection direction,
-                       bool isNullable,
-                       byte precision,
-                       byte scale,
-                       String sourceColumn,
-                       DataRowVersion sourceVersion,
-                       Object value) : this(parameterName,dbType,size,direction,isNullable,precision,scale,sourceColumn,sourceVersion,value,true)
-               {
-               }
-
-#if NET_2_0
-               public SqlParameter (
-                       string parameterName,
-                       SqlDbType dbType,
-                       int size,
-                       ParameterDirection direction,
-                       byte precision,
-                       byte scale,
-                       string sourceColumn,
-                       DataRowVersion sourceVersion,
-                       bool sourceColumnNullMapping,
-                       Object value,
-                       string xmlSchemaCollectionDatabase,
-                       string xmlSchemaCollectionOwningSchema,
-                       string xmlSchemaCollectionName
-               ) : this (parameterName, dbType, size, direction, sourceColumnNullMapping, precision, scale, sourceColumn, sourceVersion, value, true)
-               {
-               }
-#endif
-
-               SqlParameter(
-                       String parameterName,
-                       SqlDbType dbType,
-                       int size,
-                       ParameterDirection direction,
-                       bool isNullable,
-                       byte precision,
-                       byte scale,
-                       String sourceColumn,
-                       DataRowVersion sourceVersion,
-                       Object value,
-                       bool dbTypeExplicit)
-               {
-                       ParameterName = parameterName;
-                       SqlDbType = dbType;
-                       Size = size;
-                       Direction = direction;
-                       IsNullable = isNullable;
-                       Precision = precision;
-                       Scale = scale;
-                       SourceColumn = sourceColumn;
-                       SourceVersion = sourceVersion;
-                       if (!dbTypeExplicit) {
-                               IsDbTypeSet = false;
-                       }
-                       Value = value;
-               }
-
-               #endregion // Constructors
-
-               #region Properties
-
-               public override DbType DbType
-        {
-            get { return SqlConvert.SqlDbTypeToDbType(_sqlDbType); }           
-                       set { SqlDbType = SqlConvert.DbTypeToSqlDbType(value); }
-        }                
-        
-        public SqlDbType SqlDbType
-        {
-            get { return _sqlDbType; }            
-                       set {
-                _sqlDbType = value;
-                               IsDbTypeSet = true;
-            }
-        }                 
-
-               public override int Size
-               {
-                       get {
-                               int retVal = base.Size;
-                               return retVal;
-                       }
-                       set {
-                               if (value < 0) {
-                                       throw ExceptionHelper.InvalidSizeValue(value);
-                               }
-
-                               if (value != 0) {
-                                       base.Size = value;
-                               }
-                               else {
-                                       base.Size = -1;
-                               }
-                       }
-               }
-
-#if NET_2_0
-               public new byte Precision 
-               { 
-                       get { return base.Precision; }
-                       set { base.Precision = value; } 
-               }
-
-               public new byte Scale 
-               { 
-                       get { return base.Scale; }
-                       set { base.Scale = value; } 
-               }
-#endif
-
-               protected internal override string Placeholder {
-                       get {
-                               if (ParameterName.Length == 0 || ParameterName[0] == '@')
-                                       return ParameterName;
-
-                               return String.Concat("@", ParameterName);       
-                       }
-               }
-
-        
-               public override Object Value
-               {
-                       get { return base.Value; }
-                       set { 
-                               if (!IsDbTypeSet && (value != null) && (value != DBNull.Value)) {
-                    _sqlDbType = SqlConvert.ValueTypeToSqlDbType(value.GetType());
-                               }
-                               base.Value = value; 
-                       }
-               }
-
-               #endregion // Properties
-
-               #region Methods
-
-               protected internal sealed override object ConvertValue(object value)
-               {
-                       // can not convert null or DbNull to other types
-                       if (value == null || value == DBNull.Value) {
-                               return value;
-                       }
-                       // .NET throws an exception to the user.
-                       object convertedValue = value is IConvertible ? Convert.ChangeType(value,SqlConvert.SqlDbTypeToValueType(SqlDbType)) : value;
-                       return convertedValue;
-               }
-
-               protected internal sealed override void SetParameterName(ResultSet res)
-               {
-                       string name = res.getString("COLUMN_NAME");
-                       if (name != null && name.Length > 0 && name[0] != '@')
-                               name = String.Concat("@", name);
-                       ParameterName = name;
-               }
-
-               protected internal sealed override void SetParameterDbType(ResultSet res)
-               {
-                       int dataType = res.getInt("DATA_TYPE");
-                       SqlDbType = SqlConvert.JdbcTypeToSqlDbType(dataType);
-                       JdbcType = dataType;
-               }
-
-#if NET_2_0
-               public void ResetSqlDbType ()
-               {
-                       IsDbTypeSet = false;
-               }
-
-               public override void ResetDbType ()
-               {
-                       ResetSqlDbType ();
-               }
-#endif
-
-               protected internal sealed override void SetSpecialFeatures (ResultSet res)
-               {
-                       // do nothing
-               }
-
-               protected internal sealed override int JdbcTypeFromProviderType()
-               {
-                       return SqlConvert.SqlDbTypeToJdbcType(SqlDbType);
-               }
-
-               #endregion // Methods  
-
-       }
-}
diff --git a/mcs/class/System.Data/System.Data.SqlTypes.jvm/SqlDecimal.cs b/mcs/class/System.Data/System.Data.SqlTypes.jvm/SqlDecimal.cs
deleted file mode 100644 (file)
index aeae5ea..0000000
+++ /dev/null
@@ -1,897 +0,0 @@
-// System.Data.SqlTypes.SqlDecimal\r
-//\r
-// Authors:\r
-//     Konstantin Triger <kostat@mainsoft.com>\r
-//     Boris Kirzner <borisk@mainsoft.com>\r
-//     \r
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)\r
-//\r
-\r
-//\r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-// \r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-//\r
-\r
-namespace System.Data.SqlTypes\r
-{\r
-\r
-    /**\r
-     * <p>Title: </p>\r
-     * <p>Description: </p>\r
-     * <p>Copyright: Copyright (c) 2002</p>\r
-     * <p>Company: MainSoft</p>\r
-     * @author Pavel Sandler\r
-     * @version 1.0\r
-     */\r
-\r
-    using System;\r
-\r
-    using java.math;\r
-\r
-    /*\r
-    * CURRENT LIMITATIONS:\r
-    * 1. public byte[] Data not implemented.\r
-    * 2. public byte[] BinData not implemented.\r
-    * 3. Precision value is ignored.\r
-    * 4. public SqlDecimal AdjustScale(SqlDecimal n, int position) not implemented.\r
-    * 5. public SqlDecimal ConvertToPrecScale(SqlDecimal n, int precision, int scale) not implemented.\r
-    */\r
-\r
-\r
-    public struct SqlDecimal : INullable\r
-    {\r
-\r
-        private Decimal _value;\r
-        private bool _isNull;\r
-\r
-        public static readonly SqlDecimal MaxValue = new SqlDecimal(Decimal.MaxValue);\r
-        public static readonly SqlDecimal MinValue = new SqlDecimal(Decimal.MinValue);\r
-        public static readonly int MaxPrecision = 38;\r
-        public static readonly int MaxScale = MaxPrecision;\r
-        public static readonly SqlDecimal Null = new SqlDecimal(true);\r
-\r
-        private int _precision;\r
-        private int _scale;\r
-        \r
-\r
-        private SqlDecimal(bool isNull)\r
-        {\r
-            _value = Decimal.Zero;\r
-            _isNull = isNull;\r
-            _precision = 38;\r
-            _scale = 0;\r
-        }\r
-        /**\r
-         * Initializes a new instance of the SqlDecimal instance using the supplied Decimal value.\r
-         * @param value The Decimal value to be stored as a SqlDecimal instance.\r
-         */\r
-        public SqlDecimal(Decimal value) \r
-        {\r
-            _value = value;\r
-            _isNull = false;\r
-            int[] bits = Decimal.GetBits(value);\r
-            int i = bits[3] & 0xff0000;\r
-            _scale = i >> 16;\r
-            _precision = 38;\r
-        }\r
-\r
-        /**\r
-         * Initializes a new instance of the SqlDecimal instance using the supplied double value.\r
-         * @param value The double value to be stored as a SqlDecimal instance.\r
-         */\r
-        public SqlDecimal(double value) \r
-        { \r
-            _value = new Decimal(value);\r
-            _isNull = false; \r
-            int[] bits = Decimal.GetBits(_value);\r
-            int i = bits[3] & 0xff0000;\r
-            _scale = i >> 16;\r
-            _precision = 38;\r
-        }\r
-\r
-        /**\r
-         * Initializes a new instance of the SqlDecimal instance using the supplied int value.\r
-         * @param value The int value to be stored as a SqlDecimal instance.\r
-         */\r
-        public SqlDecimal(int value) \r
-        {\r
-            _value = new Decimal(value);\r
-            _isNull = false;\r
-            int[] bits = Decimal.GetBits(_value);\r
-            int i = bits[3] & 0xff0000;\r
-            _scale = i >> 16;\r
-            _precision = 38;\r
-        }\r
-\r
-        /**\r
-         * Initializes a new instance of the SqlDecimal instance using the supplied long value.\r
-         * @param value The long value to be stored as a SqlDecimal instance.\r
-         */\r
-        public SqlDecimal(long value) \r
-        {\r
-            _value = new Decimal(value);\r
-            _isNull = false;\r
-            int[] bits = Decimal.GetBits(_value);\r
-            int i = bits[3] & 0xff0000;\r
-            _scale = i >> 16;\r
-            _precision = 38;\r
-        }\r
-\r
-        \r
-        /**\r
-         * Indicates whether or not Value is null.\r
-         * @return true if Value is null, otherwise false.\r
-         */\r
-        public bool IsNull\r
-        {\r
-            get\r
-            {\r
-                return _isNull;\r
-            }\r
-        }\r
-\r
-        /**\r
-         * Gets the value of the SqlDecimal instance.\r
-         * @return the value of this instance\r
-         */\r
-        public Decimal Value\r
-        {\r
-            get\r
-            {\r
-                if(IsNull)\r
-                    throw new SqlNullValueException();\r
-                return _value;\r
-            }\r
-        }\r
-\r
-        public byte[] BinData\r
-        {\r
-            get\r
-            {\r
-                /** @todo implement this method */\r
-                throw new NotImplementedException();\r
-            }\r
-        }\r
-\r
-        public byte[] Data\r
-        {\r
-            get\r
-            {\r
-                /** @todo implement this method */\r
-                throw new NotImplementedException();\r
-            }\r
-        }\r
-\r
-        /**\r
-         * Indicates whether or not the Value of this SqlDecimal instance is greater than zero.\r
-         * @return true if the Value is assigned to null, otherwise false.\r
-         */\r
-        public bool IsPositive\r
-        {\r
-            get\r
-            {\r
-                if (!IsNull)\r
-                {\r
-                    if (_value >= 0)\r
-                        return true;\r
-\r
-                    return false;\r
-                }\r
-            \r
-                throw new SqlNullValueException("The value of this instance is null");\r
-            }\r
-        }\r
-\r
-        /**\r
-         * Gets the maximum number of digits used to represent the Value property.\r
-         * @return The maximum number of digits used to represent the Value of this SqlDecimal instance.\r
-         */\r
-        public int Precision\r
-        {\r
-            get\r
-            {\r
-                return _precision;\r
-            }\r
-        }\r
-\r
-        /**\r
-         * Gets the number of decimal places to which Value is resolved.\r
-         * @return The number of decimal places to which the Value property is resolved.\r
-         */\r
-        public int Scale\r
-        {\r
-            get\r
-            {\r
-                return  _precision;\r
-            }\r
-        }\r
-\r
-        /**\r
-         * The Abs member function gets the absolute value of the SqlDecimal parameter.\r
-         * @param n A SqlDecimal instance.\r
-         * @return A SqlDecimal instance whose Value property contains the unsigned number representing the absolute value of the SqlDecimal parameter.\r
-         */\r
-        public static SqlDecimal Abs(SqlDecimal n)\r
-        {\r
-            if (n.IsNull)\r
-                return new SqlDecimal();\r
-\r
-            Decimal val;\r
-\r
-            if (n.IsPositive)\r
-                val = n.Value;\r
-            else\r
-                val = Decimal.Negate(n._value);\r
-\r
-            return new SqlDecimal(val);\r
-\r
-        }\r
-\r
-        /**\r
-         * Calcuates the sum of the two SqlDecimal operators.\r
-         * @param x A SqlDecimal instance.\r
-         * @param y A SqlDecimal instance.\r
-         * @return A new SqlDecimal instance whose Value property contains the sum.\r
-         * If one of the parameters or their value is null return SqlDecimal.Null.\r
-         */\r
-        public static SqlDecimal Add(SqlDecimal x, SqlDecimal y)\r
-        {\r
-            if (x.IsNull || y.IsNull)\r
-                return SqlDecimal.Null;\r
-\r
-            Decimal res = Decimal.Add(x._value, y._value);\r
-\r
-            return new SqlDecimal(res);\r
-        }\r
-\r
-        public static SqlDecimal AdjustScale(SqlDecimal n, int digits, bool fround)\r
-        {\r
-            /** @todo find out what the logic */\r
-            throw new NotImplementedException();\r
-        }\r
-\r
-        /**\r
-         * Returns the smallest whole number greater than or equal to the specified SqlDecimal instance.\r
-         * @param n The SqlDecimal instance for which the ceiling value is to be calculated.\r
-         * @return A SqlDecimal representing the smallest whole number greater than or equal to the specified SqlDecimal instance.\r
-         */\r
-        public static SqlDecimal Ceiling(SqlDecimal n)\r
-        {\r
-            if (n.IsNull)\r
-                return SqlDecimal.Null;\r
-\r
-            double d = Math.Ceiling((double)n._value);\r
-            return new SqlDecimal(d);\r
-        }\r
-\r
-        /**\r
-         * Compares this instance to the supplied object and returns an indication of their relative values.\r
-         * @param obj The object to compare.\r
-         * @return A signed number indicating the relative values of the instance and the object.\r
-         * Less than zero This instance is less than object.\r
-         * Zero This instance is the same as object.\r
-         * Greater than zero This instance is greater than object -or-\r
-         * object is a null reference.\r
-         */\r
-        public int CompareTo(Object obj)\r
-        {\r
-            if (obj == null)\r
-                return 1;\r
-\r
-            if (obj is SqlDecimal)\r
-            {\r
-                SqlDecimal value = (SqlDecimal)obj;\r
-                \r
-                if (IsNull)\r
-                    return -1;\r
-\r
-                if (value.IsNull)\r
-                    return 1;\r
-\r
-                if (_value == value._value)\r
-                    return 0;\r
-\r
-                return Decimal.Compare(_value, value._value);\r
-            }\r
-\r
-            throw new ArgumentException("parameter obj is not SqlDecimal : " + obj.GetType().Name);\r
-\r
-\r
-        }\r
-\r
-\r
-        public SqlDecimal ConvertToPrecScale(SqlDecimal n, int precision, int scale)\r
-        {\r
-            /** @todo find out what the logic */\r
-            throw new NotImplementedException();\r
-        }\r
-\r
-        /**\r
-         * The division operator divides the first SqlDecimal operand by the second.\r
-         * @param x A SqlDecimal instance.\r
-         * @param y A SqlDecimal instance.\r
-         * @return A SqlDecimal instance containing the results of the division operation.\r
-         * If one of the parameters is null or null value - return SqlDouble.Null.\r
-         */\r
-        public static SqlDecimal Divide(SqlDecimal x, SqlDecimal y)\r
-        {\r
-            if (x.IsNull || y.IsNull)\r
-                return SqlDecimal.Null;\r
-\r
-            Decimal res = Decimal.Divide(x._value, y._value);\r
-\r
-            return new SqlDecimal(res);\r
-        }\r
-\r
-        public override bool Equals(Object obj)\r
-        {\r
-            if (obj == null)\r
-                return false;\r
-\r
-            if (obj is SqlDecimal)\r
-            {\r
-                SqlDecimal dec = (SqlDecimal)obj;\r
-\r
-                return Decimal.Equals(_value, dec._value);\r
-            }\r
-\r
-            return false;\r
-        }\r
-\r
-        \r
-        /**\r
-         * Performs a logical comparison on two instances of SqlDecimal to determine if they are equal.\r
-         * @param x A SqlDecimal instance.\r
-         * @param y A SqlDecimal instance.\r
-         * @return true if the two values are equal, otherwise false.\r
-         * If one of the parameters is null or null value return SqlBoolean.Null.\r
-         */\r
-        public static SqlBoolean Equals(SqlDecimal x, SqlDecimal y)\r
-        {\r
-            if (x.IsNull || y.IsNull)\r
-                return SqlBoolean.Null;\r
-\r
-            if (x.Equals(y))\r
-                return SqlBoolean.True;\r
-\r
-            return SqlBoolean.False;\r
-        }\r
-\r
-        /**\r
-         * Rounds a specified SqlDecimal number to the next lower whole number.\r
-         * @param n The SqlDecimal instance for which the floor value is to be calculated.\r
-         * @return A SqlDecimal instance containing the whole number portion of this SqlDecimal instance.\r
-         */\r
-        public static SqlDecimal Floor(SqlDecimal n)\r
-        {\r
-            Decimal res = Decimal.Floor(n._value);\r
-\r
-            return new SqlDecimal(res);\r
-        }\r
-\r
-        /**\r
-         * Compares two instances of SqlDecimal to determine if the first is greater than the second.\r
-         * @param x A SqlDecimal instance\r
-         * @param y A SqlDecimal instance\r
-         * @return A SqlBoolean that is True if the first instance is greater than the second instance, otherwise False.\r
-         * If either instance of SqlDouble is null, the Value of the SqlBoolean will be Null.\r
-         */\r
-        public static SqlBoolean GreaterThan(SqlDecimal x, SqlDecimal y)\r
-        {\r
-            if (x.IsNull || y.IsNull)\r
-                return SqlBoolean.Null;\r
-\r
-            if (x.CompareTo(y) > 0)\r
-                return SqlBoolean.True;\r
-\r
-            return SqlBoolean.False;\r
-        }\r
-\r
-        /**\r
-         * Compares two instances of SqlDecimal to determine if the first is greater than or equal to the second.\r
-         * @param x A SqlDecimal instance\r
-         * @param y A SqlDecimal instance\r
-         * @return A SqlBoolean that is True if the first instance is greaater than or equal to the second instance, otherwise False.\r
-         * If either instance of SqlDouble is null, the Value of the SqlBoolean will be Null.\r
-         */\r
-        public static SqlBoolean GreaterThanOrEqual(SqlDecimal x, SqlDecimal y)\r
-        {\r
-            if (x.IsNull || y.IsNull)\r
-                return SqlBoolean.Null;\r
-\r
-            if (x.CompareTo(y) >= 0)\r
-                return SqlBoolean.True;\r
-\r
-            return SqlBoolean.False;\r
-        }\r
-\r
-        /**\r
-         * Compares two instances of SqlDecimal to determine if the first is less than the second.\r
-         * @param x A SqlDecimal instance\r
-         * @param y A SqlDecimal instance\r
-         * @return A SqlBoolean that is True if the first instance is less than the second instance, otherwise False.\r
-         * If either instance of SqlDouble is null, the Value of the SqlBoolean will be Null.\r
-         */\r
-        public static SqlBoolean LessThan(SqlDecimal x, SqlDecimal y)\r
-        {\r
-            if (x.IsNull || y.IsNull)\r
-                return SqlBoolean.Null;\r
-\r
-            if (x.CompareTo(y) < 0)\r
-                return SqlBoolean.True;\r
-\r
-            return SqlBoolean.False;\r
-        }\r
-\r
-        /**\r
-         * Compares two instances of SqlDecimal to determine if the first is less than the second.\r
-         * @param x A SqlDecimal instance\r
-         * @param y A SqlDecimal instance\r
-         * @return A SqlBoolean that is True if the first instance is less than the second instance, otherwise False.\r
-         * If either instance of SqlDouble is null, the Value of the SqlBoolean will be Null.\r
-         */\r
-        public static SqlBoolean LessThanOrEqual(SqlDecimal x, SqlDecimal y)\r
-        {\r
-            if (x.IsNull || y.IsNull)\r
-                return SqlBoolean.Null;\r
-\r
-            if (x.CompareTo(y) <= 0)\r
-                return SqlBoolean.True;\r
-\r
-            return SqlBoolean.False;\r
-        }\r
-\r
-        /**\r
-         * The multiplication operator computes the product of the two SqlDecimal operands.\r
-         * @param x A SqlDecimal instance\r
-         * @param y A SqlDecimal instance\r
-         * @return The product of the two SqlDecimal operands.\r
-         */\r
-        public static SqlDecimal Multiply(SqlDecimal x, SqlDecimal y)\r
-        {\r
-            if (x.IsNull || y.IsNull)\r
-                return SqlDecimal.Null;\r
-\r
-            Decimal res = Decimal.Multiply(x._value, y._value);\r
-\r
-            return new SqlDecimal(res);\r
-        }\r
-\r
-        /**\r
-         * Compares two instances of SqlDecimal to determine if they are equal.\r
-         * @param x A SqlDecimal instance\r
-         * @param y A SqlDecimal instance\r
-         * @return A SqlBoolean that is True if the two instances are not equal or False if the two instances are equal.\r
-         * If either instance of SqlDouble is null, the Value of the SqlBoolean will be Null.\r
-         */\r
-        public static SqlBoolean NotEquals(SqlDecimal x, SqlDecimal y)\r
-        {\r
-            SqlBoolean eVal = Equals(x, y);\r
-\r
-            if (eVal.IsNull)\r
-                return eVal;\r
-            if (eVal.IsTrue)\r
-                return SqlBoolean.False;\r
-\r
-            return SqlBoolean.True;\r
-        }\r
-\r
-        /**\r
-         * Converts the String representation of a number to its Decimal number equivalent.\r
-         * @param s The String to be parsed.\r
-         * @return A SqlDecimal containing the value represented by the String.\r
-         */\r
-        public static SqlDecimal Parse(String s)\r
-        {\r
-            Decimal val = Decimal.Parse(s);\r
-            SqlDecimal retVal = new SqlDecimal(val);\r
-\r
-            if (GreaterThan(retVal, MaxValue).IsTrue || LessThan(retVal, MinValue).IsTrue)\r
-                throw new OverflowException("The parse of this string is overflowing : " + val);\r
-\r
-            return retVal;\r
-\r
-        }\r
-\r
-        /**\r
-         * Raises the value of the specified SqlDecimal instance to the specified exponential power.\r
-         * @param n The SqlDecimal instance to be raised to a power.\r
-         * @param exponent A double value indicating the power to which the number should be raised.\r
-         * @return A SqlDecimal instance containing the results.\r
-         */\r
-        public static SqlDecimal Power(SqlDecimal n, double exponent)\r
-        {\r
-            /** @todo decide if we treat the Decimal as a double and use Math.pow() */\r
-            \r
-            double d = (double)n._value;\r
-\r
-            d = java.lang.Math.pow(d, exponent);\r
-\r
-            return new SqlDecimal(d);\r
-        }\r
-\r
-        /**\r
-         * Gets the number nearest the specified SqlDecimal instance's value with the specified precision.\r
-         * @param n The SqlDecimal instance to be rounded.\r
-         * @param position The number of significant fractional digits (precision) in the return value.\r
-         * @return A SqlDecimal instance containing the results of the rounding operation.\r
-         */\r
-        public static SqlDecimal Round(SqlDecimal n, int position)\r
-        {\r
-            Decimal val = Decimal.Round(n._value, position);\r
-\r
-            return new SqlDecimal(val);\r
-        }\r
-\r
-        /**\r
-         * Gets a value indicating the sign of a SqlDecimal instance's Value property.\r
-         * @param n The SqlDecimal instance whose sign is to be evaluated.\r
-         * @return A number indicating the sign of the SqlDecimal instance.\r
-         */\r
-        public static int Sign(SqlDecimal n)\r
-        {\r
-            if (n._value < 0)\r
-                return -1;\r
-            if(n._value > 0)\r
-                return 1;\r
-            return 0;\r
-        }\r
-\r
-        /**\r
-         * The subtraction operator the second SqlDecimal operand from the first.\r
-         * @param x A SqlDecimal instance\r
-         * @param y A SqlDecimal instance\r
-         * @return The results of the subtraction operation.\r
-         */\r
-        public static SqlDecimal Subtract(SqlDecimal x, SqlDecimal y)\r
-        {\r
-            Decimal val = Decimal.Subtract(x._value, y._value);\r
-            SqlDecimal retVal = new SqlDecimal(val);\r
-\r
-            return retVal;\r
-\r
-        }\r
-\r
-        /**\r
-         * Returns the a double equal to the contents of the Value property of this instance.\r
-         * @return The decimal representation of the Value property.\r
-         */\r
-        public double ToDouble()\r
-        {\r
-            return Decimal.ToDouble(_value);\r
-        }\r
-\r
-        /**\r
-         * Converts this SqlDecimal instance to SqlBoolean.\r
-         * @return A SqlBoolean instance whose Value will be True if the SqlDecimal instance's Value is non-zero,\r
-         * False if the SqlDecimal is zero\r
-         * and Null if the SqlDecimal instance is Null.\r
-         */\r
-        public SqlBoolean ToSqlBoolean()\r
-        {\r
-            if (IsNull)\r
-                return SqlBoolean.Null;\r
-\r
-            return new SqlBoolean(!_value.Equals(Decimal.Zero));\r
-        }\r
-\r
-        /**\r
-         * Converts this SqlDecimal instance to SqlByte.\r
-         * @return A SqlByte instance whose Value equals the Value of this SqlDouble instance.\r
-         */\r
-        public SqlByte ToSqlByte()\r
-        {\r
-            if (IsNull)\r
-                return SqlByte.Null;\r
-\r
-            return new SqlByte(checked((byte)_value));\r
-        }\r
-\r
-        /**\r
-         * Converts this SqlDecimal instance to SqlDouble.\r
-         * @return A SqlDouble instance whose Value equals the Value of this SqlDecimal instance.\r
-         */\r
-        public SqlDouble ToSqlDouble()\r
-        {\r
-            if (IsNull)\r
-                return SqlDouble.Null;\r
-\r
-            return new SqlDouble((double)_value);\r
-        }\r
-\r
-        /**\r
-         * Converts this SqlDouble structure to SqlInt16.\r
-         * @return A SqlInt16 structure whose Value equals the Value of this SqlDouble structure.\r
-         */\r
-        public SqlInt16 ToSqlInt16()\r
-        {\r
-            if (IsNull)\r
-                return SqlInt16.Null;\r
-\r
-            return new SqlInt16(checked((short)_value));\r
-        }\r
-\r
-        /**\r
-         * Converts this SqlDouble structure to SqlInt32.\r
-         * @return A SqlInt32 structure whose Value equals the Value of this SqlDouble structure.\r
-         */\r
-        public SqlInt32 ToSqlInt32()\r
-        {\r
-            if (IsNull)\r
-                return SqlInt32.Null;\r
-\r
-            return new SqlInt32(checked((int)_value));\r
-        }\r
-\r
-        /**\r
-         * Converts this SqlDecimal structure to SqlInt64.\r
-         * @return A SqlInt64 structure whose Value equals the Value of this SqlDecimal structure.\r
-         */\r
-        public SqlInt64 ToSqlInt64()\r
-        {\r
-            if (IsNull)\r
-                return SqlInt64.Null;\r
-\r
-            return new SqlInt64(checked((long)_value));\r
-        }\r
-\r
-        /**\r
-         * Converts this SqlDecimal instance to SqlDouble.\r
-         * @return A SqlMoney instance whose Value equals the Value of this SqlDecimal instance.\r
-         */\r
-        public SqlMoney ToSqlMoney()\r
-        {\r
-            if (IsNull)\r
-                return SqlMoney.Null;\r
-\r
-            return new SqlMoney(_value);\r
-        }\r
-\r
-        /**\r
-         * Converts this SqlDecimal instance to SqlSingle.\r
-         * @return A SqlSingle instance whose Value equals the Value of this SqlDecimal instance.\r
-         */\r
-        public SqlSingle ToSqlSingle()\r
-        {\r
-            if (IsNull)\r
-                return SqlSingle.Null;\r
-\r
-            return new SqlSingle(checked((float)_value));\r
-        }\r
-\r
-        /**\r
-         * Converts this SqlDecimal structure to SqlString.\r
-         * @return A SqlString structure whose value is a string representing the date and time contained in this SqlDecimal structure.\r
-         */\r
-        public SqlString ToSqlString()\r
-        {\r
-            return new SqlString(ToString());\r
-        }\r
-\r
-\r
-        public override String ToString()\r
-        {\r
-            if (IsNull)\r
-                return "null";\r
-\r
-            return _value.ToString();\r
-        }\r
-\r
-        /**\r
-         * Truncates the specified SqlDecimal instance's value to the desired position.\r
-         * @param n The SqlDecimal instance to be truncated.\r
-         * @param position The decimal position to which the number will be truncated.\r
-         * @return Supply a negative value for the position parameter in order to truncate the value to the corresponding positon to the left of the decimal point.\r
-         */\r
-        public static SqlDecimal Truncate(SqlDecimal n, int position)\r
-        {\r
-            if (n.IsNull)\r
-                return n;\r
-            \r
-            Decimal tmp = Decimal.Round(n._value, position);\r
-\r
-            return new SqlDecimal(tmp);\r
-        }\r
-\r
-        public override int GetHashCode()\r
-        {\r
-            return _value.GetHashCode();\r
-        }\r
-        \r
-        public static SqlDecimal operator + (SqlDecimal x, SqlDecimal y)\r
-        {\r
-            if(x.IsNull || y.IsNull)\r
-                return SqlDecimal.Null;\r
-\r
-            return new SqlDecimal(x.Value + y.Value);\r
-        }\r
-\r
-        public static SqlDecimal operator / (SqlDecimal x, SqlDecimal y)\r
-        {\r
-            if(x.IsNull || y.IsNull)\r
-                return SqlDecimal.Null;\r
-            return new SqlDecimal (x.Value / y.Value);\r
-        }\r
-\r
-        public static SqlBoolean operator == (SqlDecimal x, SqlDecimal y)\r
-        {\r
-            if (x.IsNull || y.IsNull) \r
-                return SqlBoolean.Null;\r
-\r
-            return new SqlBoolean(x.Value == y.Value);\r
-        }\r
-\r
-        public static SqlBoolean operator > (SqlDecimal x, SqlDecimal y)\r
-        {\r
-            if (x.IsNull || y.IsNull) \r
-                return SqlBoolean.Null;\r
-\r
-            return new SqlBoolean(x.Value > y.Value);\r
-        }\r
-\r
-        public static SqlBoolean operator >= (SqlDecimal x, SqlDecimal y)\r
-        {\r
-            if (x.IsNull || y.IsNull) \r
-                return SqlBoolean.Null;\r
-\r
-            return new SqlBoolean(x.Value >= y.Value);\r
-        }\r
-\r
-        public static SqlBoolean operator != (SqlDecimal x, SqlDecimal y)\r
-        {\r
-            if (x.IsNull || y.IsNull) \r
-                return SqlBoolean.Null;\r
-\r
-            return new SqlBoolean(x.Value != y.Value);\r
-        }\r
-\r
-        public static SqlBoolean operator < (SqlDecimal x, SqlDecimal y)\r
-        {\r
-\r
-            if (x.IsNull || y.IsNull) \r
-                return SqlBoolean.Null;\r
-\r
-            return new SqlBoolean(x.Value < y.Value);\r
-\r
-        }\r
-\r
-        public static SqlBoolean operator <= (SqlDecimal x, SqlDecimal y)\r
-        {\r
-            if (x.IsNull || y.IsNull) \r
-                return SqlBoolean.Null;\r
-\r
-            return new SqlBoolean(x.Value <= y.Value);\r
-        }\r
-\r
-        public static SqlDecimal operator * (SqlDecimal x, SqlDecimal y)\r
-        {\r
-            // adjust the scale to the smaller of the two beforehand\r
-            if (x.Scale > y.Scale)\r
-                x = SqlDecimal.AdjustScale(x, y.Scale - x.Scale, true);\r
-            else if (y.Scale > x.Scale)\r
-                y = SqlDecimal.AdjustScale(y, x.Scale - y.Scale, true);\r
-\r
-            return new SqlDecimal(x.Value * y.Value);\r
-        }\r
-\r
-        public static SqlDecimal operator - (SqlDecimal x, SqlDecimal y)\r
-        {\r
-            if(x.IsNull || y.IsNull)\r
-                return SqlDecimal.Null;\r
-\r
-            return new SqlDecimal(x.Value - y.Value);\r
-        }\r
-\r
-        public static SqlDecimal operator - (SqlDecimal n)\r
-        {\r
-            if(n.IsNull)\r
-                return n;\r
-            return new SqlDecimal (Decimal.Negate(n.Value));\r
-        }\r
-\r
-        public static explicit operator SqlDecimal (SqlBoolean x)\r
-        {\r
-            if (x.IsNull) \r
-                return Null;\r
-            else\r
-                return new SqlDecimal ((decimal)x.ByteValue);\r
-        }\r
-\r
-        public static explicit operator Decimal (SqlDecimal n)\r
-        {\r
-            return n.Value;\r
-        }\r
-\r
-        public static explicit operator SqlDecimal (SqlDouble x)\r
-        {\r
-            checked \r
-            {\r
-                if (x.IsNull) \r
-                    return Null;\r
-                else\r
-                    return new SqlDecimal ((decimal)x.Value);\r
-            }\r
-        }\r
-\r
-        public static explicit operator SqlDecimal (SqlSingle x)\r
-        {\r
-            checked \r
-            {\r
-                if (x.IsNull) \r
-                    return Null;\r
-                else\r
-                    return new SqlDecimal ((decimal)x.Value);\r
-            }\r
-        }\r
-\r
-        public static explicit operator SqlDecimal (SqlString x)\r
-        {\r
-            checked \r
-            {\r
-                return Parse (x.Value);\r
-            }\r
-        }\r
-\r
-        public static implicit operator SqlDecimal (decimal x)\r
-        {\r
-            return new SqlDecimal (x);\r
-        }\r
-\r
-        public static implicit operator SqlDecimal (SqlByte x)\r
-        {\r
-            if (x.IsNull) \r
-                return Null;\r
-            else\r
-                return new SqlDecimal ((decimal)x.Value);\r
-        }\r
-\r
-        public static implicit operator SqlDecimal (SqlInt16 x)\r
-        {\r
-            if (x.IsNull) \r
-                return Null;\r
-            else\r
-                return new SqlDecimal ((decimal)x.Value);\r
-        }\r
-\r
-        public static implicit operator SqlDecimal (SqlInt32 x)\r
-        {\r
-            if (x.IsNull) \r
-                return Null;\r
-            else\r
-                return new SqlDecimal ((decimal)x.Value);\r
-        }\r
-\r
-        public static implicit operator SqlDecimal (SqlInt64 x)\r
-        {\r
-            if (x.IsNull) \r
-                return Null;\r
-            else\r
-                return new SqlDecimal ((decimal)x.Value);\r
-        }\r
-\r
-        public static implicit operator SqlDecimal (SqlMoney x)\r
-        {\r
-            if (x.IsNull) \r
-                return Null;\r
-            else\r
-                return new SqlDecimal ((decimal)x.Value);\r
-        }\r
-\r
-    }\r
-}
\ No newline at end of file
diff --git a/mcs/class/System.Data/System.Data/Res.cs b/mcs/class/System.Data/System.Data/Res.cs
deleted file mode 100644 (file)
index e9e799a..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-namespace System.Data\r
-{\r
-\r
-    using java.util;\r
-\r
-    using System.Globalization;\r
-    //using clr.System;\r
-\r
-    public class Res\r
-    {\r
-        private static readonly String FILE_NAME = "SystemData";\r
-        private static readonly ResourceBundle _resource =\r
-            ResourceBundle.getBundle(FILE_NAME);\r
-\r
-        public static String GetString(String name, Object[] args)\r
-        {\r
-            return GetString(null, name, args);\r
-        }\r
-\r
-        public static String GetString(CultureInfo culture, String name, Object[] args)\r
-        {\r
-            try\r
-            {\r
-                String str = _resource.getString(name);\r
-                if (args != null && (int) args.Length > 0)\r
-                {\r
-                    return String.Format(str, args);\r
-                }\r
-                else\r
-                {\r
-                    return str;\r
-                }\r
-            }\r
-            catch (MissingResourceException)\r
-            {\r
-                return null;\r
-            }\r
-        }\r
-\r
-        public static String GetString(String name)\r
-        {\r
-            return GetString(null, name);\r
-        }\r
-\r
-        public static String GetString(CultureInfo culture, String name)\r
-        {\r
-            try\r
-            {\r
-                return _resource.getString(name);\r
-            }\r
-            catch (MissingResourceException)\r
-            {\r
-                return null;\r
-            }\r
-        }\r
-\r
-        public static bool GetBoolean(String name)\r
-        {\r
-            return GetBoolean(name);\r
-        }\r
-\r
-        public static bool GetBoolean(CultureInfo culture, String name)\r
-        {\r
-            // This online demo only decompiles 10 methods in each class\r
-            return false;\r
-        }\r
-\r
-        public static char GetChar(String name)\r
-        {\r
-            return GetChar(null, name);\r
-        }\r
-\r
-        public static char GetChar(CultureInfo culture, String name)\r
-        {\r
-            // This online demo only decompiles 10 methods in each class\r
-            return (char)0;\r
-        }\r
-\r
-        public static int GetByte(String name)\r
-        {\r
-            return GetByte(null, name);\r
-        }\r
-\r
-        public static int GetByte(CultureInfo culture, String name)\r
-        {\r
-            return 0;\r
-        }\r
-\r
-        public static short GetShort(String name)\r
-        {\r
-            return GetShort(null, name);\r
-        }\r
-\r
-        public static short GetShort(CultureInfo culture, String name)\r
-        {\r
-            // This online demo only decompiles 10 methods in each class\r
-            return 0;\r
-        }\r
-\r
-        public static int GetInt(String name)\r
-        {\r
-            return GetInt(null, name);\r
-        }\r
-\r
-        public static int GetInt(CultureInfo culture, String name)\r
-        {\r
-            // This online demo only decompiles 10 methods in each class\r
-            return 0;\r
-        }\r
-\r
-        public static long GetLong(String name)\r
-        {\r
-            return GetLong(null, name);\r
-        }\r
-\r
-        public static long GetLong(CultureInfo culture, String name)\r
-        {\r
-            // This online demo only decompiles 10 methods in each class\r
-            return 0;\r
-        }\r
-\r
-        public static float GetFloat(String name)\r
-        {\r
-            return GetFloat(null, name);\r
-        }\r
-\r
-        public static float GetFloat(CultureInfo culture, String name)\r
-        {\r
-            // This online demo only decompiles 10 methods in each class\r
-            return 0.0f;\r
-        }\r
-\r
-        public static double GetDouble(String name)\r
-        {\r
-            return GetDouble(null, name);\r
-        }\r
-\r
-        public static double GetDouble(CultureInfo culture, String name)\r
-        {\r
-            // This online demo only decompiles 10 methods in each class\r
-            return 0.0;\r
-        }\r
-\r
-        public static Object GetObject(String name)\r
-        {\r
-            return GetObject(null, name);\r
-        }\r
-\r
-        public static Object GetObject(CultureInfo culture, String name)\r
-        {\r
-            // This online demo only decompiles 10 methods in each class\r
-            return null;\r
-        }\r
-    }\r
-}
\ No newline at end of file
diff --git a/mcs/class/System.Web/System.Web.J2EE/J2EEUtils.cs b/mcs/class/System.Web/System.Web.J2EE/J2EEUtils.cs
deleted file mode 100644 (file)
index 64592c9..0000000
+++ /dev/null
@@ -1,334 +0,0 @@
-//
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Web.Util;
-using System.IO;
-using vmw.@internal.io;
-using vmw.common;
-using System.ComponentModel;
-using System.Threading;
-using javax.servlet;
-using System.Diagnostics;
-
-namespace System.Web.J2EE
-{
-       internal static class J2EEUtils
-       {
-               #region InputStreamWrapper
-
-               public sealed class InputStreamWrapper : Stream
-               {
-                       readonly java.io.InputStream _ins;
-
-                       public InputStreamWrapper (java.io.InputStream ins) {
-                               _ins = ins;
-                       }
-
-                       public override bool CanRead {
-                               get { return true; }
-                       }
-
-                       public override bool CanSeek {
-                               get { return _ins.markSupported (); }
-                       }
-
-                       public override bool CanWrite {
-                               get { return false; }
-                       }
-
-                       public override void Flush () {
-                       }
-
-                       public override long Length {
-                               get { return _ins.available (); }
-                       }
-
-                       public override long Position {
-                               get {
-                                       throw new NotSupportedException ();
-                               }
-                               set {
-                                       throw new NotSupportedException ();
-                               }
-                       }
-
-                       public override int Read (byte [] buffer, int offset, int count) {
-                               int r = _ins.read (TypeUtils.ToSByteArray (buffer), offset, count);
-                               return r < 0 ? 0 : r;
-                       }
-
-                       public override long Seek (long offset, SeekOrigin origin) {
-                               throw new NotImplementedException ();
-                       }
-
-                       public override void SetLength (long value) {
-                               throw new NotSupportedException ();
-                       }
-
-                       public override void Write (byte [] buffer, int offset, int count) {
-                               throw new NotSupportedException ();
-                       }
-
-                       public override void Close () {
-                               _ins.close ();
-                       }
-               }
-
-               #endregion
-
-               public static int RunProc(string[] cmd)
-               {       
-                       java.lang.Runtime rt = java.lang.Runtime.getRuntime();
-                       java.lang.Process proc = rt.exec(cmd);
-                       
-                       StreamGobbler errorGobbler = new 
-                               StreamGobbler(proc.getErrorStream(), "ERROR");            
-          
-                       StreamGobbler outputGobbler = new 
-                               StreamGobbler(proc.getInputStream(), "OUTPUT");
-                
-                       errorGobbler.start();
-                       outputGobbler.start();
-                             
-                       int exitVal = proc.waitFor();
-                       return exitVal; 
-               }
-       }
-
-       public class StreamGobbler : java.lang.Thread
-       {
-               java.io.InputStream _is;
-               String _type;
-    
-               public StreamGobbler(java.io.InputStream ins, String type)
-               {
-                       this._is = ins;
-                       this._type = type;
-               }
-    
-               public override void run()
-               {
-                       try
-                       {
-                               java.io.InputStreamReader isr = new java.io.InputStreamReader(_is);
-                               java.io.BufferedReader br = new java.io.BufferedReader(isr);
-                               String line=null;
-                               while ( (line = br.readLine()) != null)
-                               {
-                                       Debug.WriteLine(_type + ">" + line); 
-                               }
-                       } 
-                       catch (Exception ex)
-                       {
-                               Debug.WriteLine (ex);
-                       }
-               }
-       }
-}
-
-#region FileSystemWatcher Stub
-
-namespace System.IO
-{
-       [DefaultEvent ("Changed")]
-#if NET_2_0
-       [IODescription ("")]
-#endif
-       public class FileSystemWatcher : Component, ISupportInitialize
-       {
-               public FileSystemWatcher ()
-                       : this (String.Empty) {
-               }
-
-               public FileSystemWatcher (string path)
-                       : this (path, "*.*") {
-               }
-
-               public FileSystemWatcher (string path, string filter) {
-               }
-
-               #region Properties
-
-               [DefaultValue (false)]
-               [IODescription ("Flag to indicate if this instance is active")]
-               public bool EnableRaisingEvents {
-                       get { return false; }
-                       set { }
-               }
-
-               [DefaultValue ("*.*")]
-               [IODescription ("File name filter pattern")]
-               [RecommendedAsConfigurable (true)]
-               [TypeConverter ("System.Diagnostics.Design.StringValueConverter, " + Consts.AssemblySystem_Design)]
-               public string Filter {
-                       get { return "*.*"; }
-                       set { }
-               }
-
-               [DefaultValue (false)]
-               [IODescription ("Flag to indicate we want to watch subdirectories")]
-               public bool IncludeSubdirectories {
-                       get { return false; }
-                       set { }
-               }
-
-               [Browsable (false)]
-               [DefaultValue (8192)]
-               public int InternalBufferSize {
-                       get { return 8192; }
-                       set { }
-               }
-
-               [DefaultValue (NotifyFilters.FileName | NotifyFilters.DirectoryName | NotifyFilters.LastWrite)]
-               [IODescription ("Flag to indicate which change event we want to monitor")]
-               public NotifyFilters NotifyFilter {
-                       get { return NotifyFilters.FileName | NotifyFilters.DirectoryName | NotifyFilters.LastWrite; }
-                       set { }
-               }
-
-               [DefaultValue ("")]
-               [IODescription ("The directory to monitor")]
-               [RecommendedAsConfigurable (true)]
-               [TypeConverter ("System.Diagnostics.Design.StringValueConverter, " + Consts.AssemblySystem_Design)]
-               [Editor ("System.Diagnostics.Design.FSWPathEditor, " + Consts.AssemblySystem_Design, "System.Drawing.Design.UITypeEditor, " + Consts.AssemblySystem_Drawing)]
-               public string Path {
-                       get { return String.Empty; }
-                       set { }
-               }
-
-               [DefaultValue (null)]
-               [IODescription ("The object used to marshal the event handler calls resulting from a directory change")]
-#if NET_2_0
-               [Browsable (false)]
-#endif
-               public ISynchronizeInvoke SynchronizingObject {
-                       get { return null; }
-                       set { }
-               }
-
-               #endregion // Properties
-
-               #region Methods
-
-               protected override void Dispose (bool disposing) {
-                       base.Dispose (disposing);
-               }
-
-               enum EventType
-               {
-                       FileSystemEvent,
-                       ErrorEvent,
-                       RenameEvent
-               }
-
-               void RaiseEvent (Delegate ev, EventArgs arg, EventType evtype) {
-                       if (ev == null)
-                               return;
-
-                       if (SynchronizingObject == null) {
-                               Delegate [] delegates = ev.GetInvocationList ();
-                               if (evtype == EventType.RenameEvent) {
-                                       foreach (RenamedEventHandler d in delegates) {
-                                               d.BeginInvoke (this, (RenamedEventArgs) arg, null, null);
-                                       }
-                               }
-                               else if (evtype == EventType.ErrorEvent) {
-                                       foreach (ErrorEventHandler d in delegates) {
-                                               d.BeginInvoke (this, (ErrorEventArgs) arg, null, null);
-                                       }
-                               }
-                               else {
-                                       foreach (FileSystemEventHandler d in delegates) {
-                                               d.BeginInvoke (this, (FileSystemEventArgs) arg, null, null);
-                                       }
-                               }
-                               return;
-                       }
-
-                       SynchronizingObject.BeginInvoke (ev, new object [] { this, arg });
-               }
-
-               protected void OnChanged (FileSystemEventArgs e) {
-                       RaiseEvent (Changed, e, EventType.FileSystemEvent);
-               }
-
-               protected void OnCreated (FileSystemEventArgs e) {
-                       RaiseEvent (Created, e, EventType.FileSystemEvent);
-               }
-
-               protected void OnDeleted (FileSystemEventArgs e) {
-                       RaiseEvent (Deleted, e, EventType.FileSystemEvent);
-               }
-
-               protected void OnError (ErrorEventArgs e) {
-                       RaiseEvent (Error, e, EventType.ErrorEvent);
-               }
-
-               protected void OnRenamed (RenamedEventArgs e) {
-                       RaiseEvent (Renamed, e, EventType.RenameEvent);
-               }
-
-               public WaitForChangedResult WaitForChanged (WatcherChangeTypes changeType) {
-                       return WaitForChanged (changeType, Timeout.Infinite);
-               }
-
-               public WaitForChangedResult WaitForChanged (WatcherChangeTypes changeType, int timeout) {
-                       return new WaitForChangedResult ();
-               }
-
-               #endregion
-
-               #region Events and Delegates
-
-               [IODescription ("Occurs when a file/directory change matches the filter")]
-               public event FileSystemEventHandler Changed;
-
-               [IODescription ("Occurs when a file/directory creation matches the filter")]
-               public event FileSystemEventHandler Created;
-
-               [IODescription ("Occurs when a file/directory deletion matches the filter")]
-               public event FileSystemEventHandler Deleted;
-
-               [Browsable (false)]
-               public event ErrorEventHandler Error;
-
-               [IODescription ("Occurs when a file/directory rename matches the filter")]
-               public event RenamedEventHandler Renamed;
-
-               #endregion // Events and Delegates
-
-               #region ISupportInitialize Members
-
-               public void BeginInit () {
-               }
-
-               public void EndInit () {
-               }
-
-               #endregion
-       }
-}
-#endregion
diff --git a/mcs/class/System.Web/System.Web.J2EE/ObjectInputStream.cs b/mcs/class/System.Web/System.Web.J2EE/ObjectInputStream.cs
deleted file mode 100644 (file)
index 35b063f..0000000
+++ /dev/null
@@ -1,244 +0,0 @@
-//
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
-//
-// Authors:
-//     Vladimir Krasnov <vladimirk@mainsoft.com>
-//     Konstantin Triger <kostat@mainsoft.com>
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using java.io;
-
-namespace Mainsoft.Web.Hosting
-{
-       public sealed class ObjectInputStream : System.IO.Stream, ObjectInput
-       {
-               readonly ObjectInput _javaObjectInput;
-
-               public ObjectInputStream (ObjectInput stream)
-               {
-                       _javaObjectInput = stream;
-               }
-
-               public override bool CanRead
-               {
-                       get
-                       {
-                               return true;
-                       }
-               }
-
-               public override bool CanWrite
-               {
-                       get
-                       {
-                               return false;
-                       }
-               }
-
-               public override bool CanSeek
-               {
-                       get
-                       {
-                               return true;
-                       }
-               }
-
-               public override long Length
-               {
-                       get
-                       {
-                               throw new NotSupportedException ();
-                       }
-               }
-
-               public override long Position
-               {
-                       get
-                       {
-                               throw new NotSupportedException ();
-                       }
-                       set
-                       {
-                               throw new NotSupportedException ();
-                       }
-               }
-
-               public override void Flush ()
-               {
-                       throw new NotSupportedException ();
-               }
-
-               public override long Seek (long offset, System.IO.SeekOrigin origin)
-               {
-                       if (origin == System.IO.SeekOrigin.Current)
-                               return _javaObjectInput.skip (offset);
-
-                       throw new NotSupportedException ();
-               }
-
-               public override void SetLength (long value)
-               {
-                       throw new NotSupportedException ();
-               }
-
-               public override int Read (byte [] buffer, int offset, int count)
-               {
-                       int rv = _javaObjectInput.read (vmw.common.TypeUtils.ToSByteArray (buffer), offset, count);
-                       return rv > 0 ? rv : 0;
-               }
-
-               public override void Write (byte [] buffer, int offset, int count)
-               {
-                       throw new NotSupportedException ();
-               }
-
-               public override int ReadByte ()
-               {
-                       return _javaObjectInput.read ();
-               }
-
-               public override void Close ()
-               {
-                       _javaObjectInput.close ();
-               }
-
-               #region ObjectInput Members
-
-               public int available ()
-               {
-                       return _javaObjectInput.available ();
-               }
-
-               public void close ()
-               {
-                       _javaObjectInput.close ();
-               }
-
-               public int read (sbyte [] __p1, int __p2, int __p3)
-               {
-                       return _javaObjectInput.read (__p1, __p2, __p3);
-               }
-
-               public int read (sbyte [] __p1)
-               {
-                       return _javaObjectInput.read (__p1);
-               }
-
-               public int read ()
-               {
-                       return _javaObjectInput.read ();
-               }
-
-               public object readObject ()
-               {
-                       return _javaObjectInput.readObject ();
-               }
-
-               public long skip (long __p1)
-               {
-                       return _javaObjectInput.skip (__p1);
-               }
-
-               #endregion
-
-               #region DataInput Members
-
-               public bool readBoolean ()
-               {
-                       return _javaObjectInput.readBoolean ();
-               }
-
-               public sbyte readByte ()
-               {
-                       return _javaObjectInput.readByte ();
-               }
-
-               public char readChar ()
-               {
-                       return _javaObjectInput.readChar ();
-               }
-
-               public double readDouble ()
-               {
-                       return _javaObjectInput.readDouble ();
-               }
-
-               public float readFloat ()
-               {
-                       return _javaObjectInput.readFloat ();
-               }
-
-               public void readFully (sbyte [] __p1, int __p2, int __p3)
-               {
-                       _javaObjectInput.readFully (__p1, __p2, __p3);
-               }
-
-               public void readFully (sbyte [] __p1)
-               {
-                       _javaObjectInput.readFully (__p1);
-               }
-
-               public int readInt ()
-               {
-                       return _javaObjectInput.readInt ();
-               }
-
-               public string readLine ()
-               {
-                       return _javaObjectInput.readLine ();
-               }
-
-               public long readLong ()
-               {
-                       return _javaObjectInput.readLong ();
-               }
-
-               public short readShort ()
-               {
-                       return _javaObjectInput.readShort ();
-               }
-
-               public string readUTF ()
-               {
-                       return _javaObjectInput.readUTF ();
-               }
-
-               public int readUnsignedByte ()
-               {
-                       return _javaObjectInput.readUnsignedByte ();
-               }
-
-               public int readUnsignedShort ()
-               {
-                       return _javaObjectInput.readUnsignedShort ();
-               }
-
-               public int skipBytes (int __p1)
-               {
-                       return _javaObjectInput.skipBytes (__p1);
-               }
-
-               #endregion
-       }
-
-}
diff --git a/mcs/class/System.Web/System.Web.J2EE/ObjectOutputStream.cs b/mcs/class/System.Web/System.Web.J2EE/ObjectOutputStream.cs
deleted file mode 100644 (file)
index 18f780b..0000000
+++ /dev/null
@@ -1,220 +0,0 @@
-//
-// (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
-//
-// Authors:
-//     Vladimir Krasnov <vladimirk@mainsoft.com>
-//     Konstantin Triger <kostat@mainsoft.com>
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using java.io;
-
-namespace Mainsoft.Web.Hosting
-{
-       public sealed class ObjectOutputStream : System.IO.Stream, ObjectOutput
-       {
-               readonly ObjectOutput _javaObjectOutput;
-
-               public ObjectOutputStream (ObjectOutput stream)
-               {
-                       _javaObjectOutput = stream;
-               }
-
-               public override bool CanRead
-               {
-                       get
-                       {
-                               return false;
-                       }
-               }
-
-               public override bool CanSeek
-               {
-                       get
-                       {
-                               return false;
-                       }
-               }
-
-               public override bool CanWrite
-               {
-                       get
-                       {
-                               return true;
-                       }
-               }
-
-               public override void Close ()
-               {
-                       _javaObjectOutput.close ();
-               }
-
-               public override void Flush ()
-               {
-                       _javaObjectOutput.flush ();
-               }
-
-               public override long Length
-               {
-                       get
-                       {
-                               throw new NotSupportedException ();
-                       }
-               }
-
-               public override long Position
-               {
-                       get
-                       {
-                               throw new NotSupportedException ();
-                       }
-                       set
-                       {
-                               throw new NotSupportedException ();
-                       }
-               }
-
-               public override long Seek (long offset, System.IO.SeekOrigin origin)
-               {
-                       throw new NotSupportedException ();
-               }
-
-               public override void SetLength (long value)
-               {
-                       throw new NotSupportedException ();
-               }
-
-               public override int Read (byte [] buffer, int offset, int count)
-               {
-                       throw new NotSupportedException ();
-               }
-
-               public override void Write (byte [] buffer, int offset, int count)
-               {
-                       _javaObjectOutput.write (vmw.common.TypeUtils.ToSByteArray (buffer), offset, count);
-               }
-
-               public override void WriteByte (byte value)
-               {
-                       _javaObjectOutput.write (value);
-               }
-
-               public ObjectOutput NativeStream
-               {
-                       get { return _javaObjectOutput; }
-               }
-
-               #region ObjectOutput Members
-
-               public void close ()
-               {
-                       _javaObjectOutput.close ();
-               }
-
-               public void flush ()
-               {
-                       _javaObjectOutput.flush ();
-               }
-
-               public void write (sbyte [] __p1, int __p2, int __p3)
-               {
-                       _javaObjectOutput.write (__p1, __p2, __p3);
-               }
-
-               public void write (sbyte [] __p1)
-               {
-                       _javaObjectOutput.write (__p1);
-               }
-
-               public void write (int __p1)
-               {
-                       _javaObjectOutput.write (__p1);
-               }
-
-               public void writeObject (object __p1)
-               {
-                       _javaObjectOutput.writeObject (__p1);
-               }
-
-               #endregion
-
-               #region DataOutput Members
-
-
-               public void writeBoolean (bool __p1)
-               {
-                       _javaObjectOutput.writeBoolean (__p1);
-               }
-
-               public void writeByte (int __p1)
-               {
-                       _javaObjectOutput.writeByte (__p1);
-               }
-
-               public void writeBytes (string __p1)
-               {
-                       _javaObjectOutput.writeBytes (__p1);
-               }
-
-               public void writeChar (int __p1)
-               {
-                       _javaObjectOutput.writeChar (__p1);
-               }
-
-               public void writeChars (string __p1)
-               {
-                       _javaObjectOutput.writeChars (__p1);
-               }
-
-               public void writeDouble (double __p1)
-               {
-                       _javaObjectOutput.writeDouble (__p1);
-               }
-
-               public void writeFloat (float __p1)
-               {
-                       _javaObjectOutput.writeFloat (__p1);
-               }
-
-               public void writeInt (int __p1)
-               {
-                       _javaObjectOutput.writeInt (__p1);
-               }
-
-               public void writeLong (long __p1)
-               {
-                       _javaObjectOutput.writeLong (__p1);
-               }
-
-               public void writeShort (int __p1)
-               {
-                       _javaObjectOutput.writeShort (__p1);
-               }
-
-               public void writeUTF (string __p1)
-               {
-                       _javaObjectOutput.writeUTF (__p1);
-               }
-
-               #endregion
-       }
-}
diff --git a/mcs/class/System.Web/System.Web/IHttpExtendedWorkerRequest.cs b/mcs/class/System.Web/System.Web/IHttpExtendedWorkerRequest.cs
deleted file mode 100644 (file)
index 0a0d979..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-//
-// (C) 2007 Mainsoft Corporation (http://www.mainsoft.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections.Generic;
-using System.Text;
-using javax.servlet.http;
-
-namespace Mainsoft.Web
-{
-       public interface IHttpExtendedWorkerRequest
-       {
-               HttpSession GetSession (bool create);
-       }
-
-       public interface IHttpUnifyWorkerRequest
-       {
-       }
-
-       public class UnifyRequestException : Exception
-       {
-               public UnifyRequestException (Exception innerException)
-                       : base (String.Empty, innerException) {
-               }
-       }
-}