TARGET_JVM
[mono.git] / mcs / class / System / System.Configuration / ConfigurationException.cs
index ea335c862e68a969710a2a4549d9357e14fef2b3..0ed96324dc5dc07a1afc3b289bb44427bf2d819f 100644 (file)
 // System.Configuration.ConfigurationException.cs
 //
 // Author:
-//   Christopher Podurgiel (cpodurgiel@msn.com)
+//   Duncan Mak (duncan@ximian.com)
 //
-// (C) Chris Podurgiel
-//\r
-using System;\rusing System.Xml;\r
-namespace System.Configuration \r{\r     /// <summary>\r  ///             ConfigurationException class.\r  /// </summary>\r /// <remarks>\r  ///   Longer description\r       /// </remarks>\r public class ConfigurationException : SystemException\r  {\r      \r               private static string   _stringBareMessage;\r            private static string   _stringFilename;\r               private static int              _intLine;\r              private static string   _stringMessage;\r\r               /// <summary>\r          ///             ConfigurationException Constructor.\r            /// </summary>\r         public ConfigurationException ()\r               {\r                      _stringBareMessage = null;\r                     _stringFilename = null;\r                        _intLine = 0;\r                  _stringMessage = null;  \r               }\r              \r               /// <summary>\r          ///             ConfigurationException Constructor.\r            /// </summary>\r         public ConfigurationException (string message)\r                 : base (message)\r               {\r                      _stringBareMessage = message;\r                  _stringFilename = null;\r                        _intLine = 0;\r                  _stringMessage = null;\r         }\r\r             /// <summary>\r          ///             ConfigurationException Constructor.\r            /// </summary>\r         public ConfigurationException (string message, Exception inner)\r                        : base (message)\r               {\r                      _stringBareMessage = message + " " + inner.ToString();\r                 _stringFilename = null;\r                        _intLine = 0;\r                  _stringMessage = null; \r                }\r\r             /// <summary>\r          ///             ConfigurationException Constructor.\r            /// </summary>\r         public ConfigurationException (string message, XmlNode node)\r                   : base (message)\r               {\r                      _stringBareMessage = message;\r                  _stringFilename = GetXmlNodeFilename(node);\r                    _intLine = GetXmlNodeLineNumber(node);\r                 _stringMessage = _stringFilename + " " + _intLine;\r             }\r\r             /// <summary>\r          ///             ConfigurationException Constructor.\r            /// </summary>\r         public ConfigurationException (string message, Exception inner, XmlNode node)\r                  : base (message)\r               {\r                      _stringBareMessage = message + " " + inner.ToString();\r                 _stringFilename = GetXmlNodeFilename(node);\r                    _intLine = GetXmlNodeLineNumber(node);\r                 _stringMessage = _stringFilename + " " + _intLine;\r             }\r\r             /// <summary>\r          ///             ConfigurationException Constructor.\r            /// </summary>\r         public ConfigurationException (string message, string filename, int line)\r                      : base (message)\r               {\r                      _stringBareMessage = message;\r                  _stringFilename = filename;\r                    _intLine = line;\r                       _stringMessage = _stringFilename + " " + _intLine;\r             }\r\r             /// <summary>\r          ///             ConfigurationException Constructor.\r            /// </summary>\r         public ConfigurationException (string message, Exception inner, string filename, int line)\r                     : base (message)\r               {\r                      _stringBareMessage = message + " " + inner.ToString();\r                 _stringFilename = filename;\r                    _intLine = line;\r                       _stringMessage = _stringFilename + " " + _intLine;\r             }\r\r\r            \r               /// <summary>\r          ///             Returns the name of the file containing the configuration section node.\r                /// </summary>\r         /// <param name="node"></param>\r                /// <returns></returns>\r                public static string GetXmlNodeFilename(XmlNode node)\r          {\r                      _stringFilename = node.OwnerDocument.Name;\r                     return _stringFilename;\r                }\r\r             /// <summary>\r          ///             Returns the line number containing the configuration section node.\r             /// </summary>\r         /// <param name="node"></param>\r                /// <returns></returns>\r                public static int GetXmlNodeLineNumber(XmlNode node)\r           {\r                      //FIXME: not sure how this should work.\r                        return 0;\r              }\r\r\r            /// <summary>\r          ///             Gets the base error message.\r           /// </summary>\r         public string BareMessage\r              {\r                      get \r                   {\r                              return _stringBareMessage;\r                     }\r              }\r\r             /// <summary>\r          ///             Gets the name of the configuration file where the error occurred.\r              /// </summary>\r         public string Filename\r         {\r                      get \r                   {\r                              return _stringFilename;\r                        }\r              }\r\r             /// <summary>\r          ///             Returns the line number where the error occurred.\r              /// </summary>\r         public int Line\r                {\r                      get \r                   {\r                              return _intLine;\r                       }\r              }\r\r             /// <summary>\r          ///             Gets a string containing the concatenated file name and line number where the error occurred.\r          /// </summary>\r         public override string Message\r         {
-                       get \r                   {\r                              return _stringMessage;\r                 }\r              }\r      }\r}\r    
\ No newline at end of file
+// (C) Ximian, Inc.  http://www.ximian.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.Globalization;
+using System.Runtime.Serialization;
+
+#if (XML_DEP)
+using System.Xml;
+#endif
+
+namespace System.Configuration 
+{
+       [Serializable]
+       public class ConfigurationException : SystemException
+       {
+               // Fields               
+               string bareMessage;
+               string filename;
+               int line;
+
+               //
+               // Constructors
+               //
+#if NET_2_0
+               [Obsolete ("This class is obsolete.  Use System.Configuration.ConfigurationErrorsException")]
+#endif
+               public ConfigurationException ()
+                       : base (Locale.GetText ("There is an error in a configuration setting."))
+               {
+                       filename = null;
+                       bareMessage = Locale.GetText ("There is an error in a configuration setting.");
+                       line = 0;
+               }
+
+#if NET_2_0
+               [Obsolete ("This class is obsolete.  Use System.Configuration.ConfigurationErrorsException")]
+#endif
+               public ConfigurationException (string message)
+                       : base (message)
+               {
+                       bareMessage = message;
+               }
+
+               protected ConfigurationException (SerializationInfo info, StreamingContext context)
+                       : base (info, context)
+               {
+                       filename = info.GetString ("filename");
+                       line = info.GetInt32 ("line");
+               }
+
+#if NET_2_0
+               [Obsolete ("This class is obsolete.  Use System.Configuration.ConfigurationErrorsException")]
+#endif
+               public ConfigurationException (string message, Exception inner)
+                       : base (message, inner)
+               {
+                       bareMessage = message;
+               }
+
+#if (XML_DEP)
+#if NET_2_0
+               [Obsolete ("This class is obsolete.  Use System.Configuration.ConfigurationErrorsException")]
+#endif
+               public ConfigurationException (string message, XmlNode node)
+                       : base (message)
+               {
+                       filename = GetXmlNodeFilename(node);
+                       line = GetXmlNodeLineNumber(node);
+                       bareMessage = message;
+               }
+
+#if NET_2_0
+               [Obsolete ("This class is obsolete.  Use System.Configuration.ConfigurationErrorsException")]
+#endif
+               public ConfigurationException (string message, Exception inner, XmlNode node)
+                       : base (message, inner)
+               {
+                       filename = GetXmlNodeFilename (node);
+                       line = GetXmlNodeLineNumber (node);
+                       bareMessage = message;
+               }
+#endif
+#if NET_2_0
+               [Obsolete ("This class is obsolete.  Use System.Configuration.ConfigurationErrorsException")]
+#endif
+               public ConfigurationException (string message, string filename, int line)
+                       : base (message)
+               {
+                       bareMessage = message;
+                       this.filename = filename;
+                       this.line= line;
+               }
+
+#if NET_2_0
+               [Obsolete ("This class is obsolete.  Use System.Configuration.ConfigurationErrorsException")]
+#endif
+               public ConfigurationException (string message, Exception inner, string filename, int line)
+                       : base (message)
+               {
+                       bareMessage = message;
+                       this.filename = filename;
+                       this.line = line;
+               }
+               //
+               // Properties
+               //
+               public
+#if NET_2_0
+               virtual
+#endif
+               string BareMessage
+               {
+                       get  { return bareMessage; }
+               }
+
+               public
+#if NET_2_0
+               virtual
+#endif
+               string Filename
+               {
+                       get { return filename; }
+               }
+
+               public  
+#if NET_2_0
+               virtual
+#endif
+               int Line
+               {
+                       get { return line; }
+               }
+
+               public override string Message
+               {
+                       get {
+                               string baseMsg = base.Message;
+                               string f = (filename == null) ? String.Empty : filename;
+                               string l = (line == 0) ? String.Empty : (" line " + line);
+
+                               return baseMsg + " (" + f + l + ")";
+                       }
+               }
+
+               //
+               // Methods
+               //
+#if (XML_DEP)
+#if NET_2_0
+               [Obsolete ("This class is obsolete.  Use System.Configuration.ConfigurationErrorsException")]
+#endif
+               public static string GetXmlNodeFilename (XmlNode node)
+               {
+                       if (!(node is IConfigXmlNode))
+                               return String.Empty;
+
+                       return ((IConfigXmlNode) node).Filename;
+               }
+
+#if NET_2_0
+               [Obsolete ("This class is obsolete.  Use System.Configuration.ConfigurationErrorsException")]
+#endif
+               public static int GetXmlNodeLineNumber (XmlNode node)
+               {
+                       if (!(node is IConfigXmlNode))
+                               return 0;
+
+                       return ((IConfigXmlNode) node).LineNumber;
+               }
+#endif
+               public override void GetObjectData (SerializationInfo info, StreamingContext context)
+               {
+                       base.GetObjectData (info, context);
+                       info.AddValue ("filename", filename);
+                       info.AddValue ("line", line);
+               }
+       }
+}