Add System.Configuration classes from Chris Podurgiel
[mono.git] / mcs / class / System / System.Configuration / ConfigurationException.cs
1 //
2 // System.Configuration.ConfigurationException.cs
3 //
4 // Author:
5 //   Christopher Podurgiel (cpodurgiel@msn.com)
6 //
7 // (C) Ximian, Inc.  http://www.ximian.com
8 //
9
10 using System;
11 using System.Xml;
12
13 namespace System.Configuration
14 {
15
16         /// <summary>
17         ///             ConfigurationException class.
18         /// </summary>
19         /// <remarks>
20         ///   Longer description
21         /// </remarks>
22         public class ConfigurationException : SystemException
23         {
24
25                 private static string _stringBareMessage;
26                 private static string _stringFilename;
27                 private static int _intLine;
28                 private static string _stringMessage;
29
30                 /// <summary>
31                 ///             ConfigurationException Constructor.
32                 /// </summary>
33                 public ConfigurationException ()
34                 {
35                         _stringBareMessage = null;
36                         _stringFilename = null;
37                         _intLine = 0;
38                         _stringMessage = null;
39                 }
40
41                 /// <summary>
42                 ///             ConfigurationException Constructor.
43                 /// </summary>
44                 public ConfigurationException (string message)
45                 {
46                         _stringBareMessage = message;
47                         _stringFilename = null;
48                         _intLine = 0;
49                         _stringMessage = null;
50                 }
51
52                 /// <summary>
53                 ///             ConfigurationException Constructor.
54                 /// </summary>
55                 public ConfigurationException (string message, Exception inner)
56                 {
57                         _stringBareMessage = message + " " + inner.ToString();
58                         _stringFilename = null;
59                         _intLine = 0;
60                         _stringMessage = null;
61                 }
62
63                 /// <summary>
64                 ///             ConfigurationException Constructor.
65                 /// </summary>
66                 public ConfigurationException (string message, XmlNode node)
67                 {
68                         _stringBareMessage = message;
69                         _stringFilename = GetXmlNodeFilename(node);
70                         _intLine = GetXmlNodeLineNumber(node);
71                         _stringMessage = _stringFilename + " " + _intLine;
72                 }
73
74                 /// <summary>
75                 ///             ConfigurationException Constructor.
76                 /// </summary>
77                 public ConfigurationException (string message, Exception inner, XmlNode 
78 node)
79                 {
80                         _stringBareMessage = message + " " + inner.ToString();
81                         _stringFilename = GetXmlNodeFilename(node);
82                         _intLine = GetXmlNodeLineNumber(node);
83                         _stringMessage = _stringFilename + " " + _intLine;
84                 }
85
86                 /// <summary>
87                 ///             ConfigurationException Constructor.
88                 /// </summary>
89                 public ConfigurationException (string message, string filename, int line)
90                 {
91                         _stringBareMessage = message;
92                         _stringFilename = filename;
93                         _intLine = line;
94                         _stringMessage = _stringFilename + " " + _intLine;
95                 }
96
97                 /// <summary>
98                 ///             ConfigurationException Constructor.
99                 /// </summary>
100                 public ConfigurationException (string message, Exception inner, string 
101 filename, int line)
102                 {
103                         _stringBareMessage = message + " " + inner.ToString();
104                         _stringFilename = filename;
105                         _intLine = line;
106                         _stringMessage = _stringFilename + " " + _intLine;
107                 }
108
109
110
111                 /// <summary>
112                 ///             Returns the name of the file containing the configuration section 
113 node.
114                 /// </summary>
115                 /// <param name="node"></param>
116                 /// <returns></returns>
117                 public static string GetXmlNodeFilename(XmlNode node)
118                 {
119                         _stringFilename = node.OwnerDocument.Name;
120                         return _stringFilename;
121                 }
122
123                 /// <summary>
124                 ///             Returns the line number containing the configuration section node.
125                 /// </summary>
126                 /// <param name="node"></param>
127                 /// <returns></returns>
128                 public static int GetXmlNodeLineNumber(XmlNode node)
129                 {
130
131                         //FIXME: not sure how this should work.
132                         return 0;
133                 }
134
135
136                 /// <summary>
137                 ///             Gets the base error message.
138                 /// </summary>
139                 public string BareMessage
140                 {
141                         get
142                         {
143                                 return _stringBareMessage;
144                         }
145                 }
146
147                 /// <summary>
148                 ///             Gets the name of the configuration file where the error occurred.
149                 /// </summary>
150                 public string Filename
151                 {
152                         get
153                         {
154                                 return _stringFilename;
155                         }
156                 }
157
158                 /// <summary>
159                 ///             Returns the line number where the error occurred.
160                 /// </summary>
161                 public int Line
162                 {
163                         get
164                         {
165                                 return _intLine;
166                         }
167                 }
168
169                 /// <summary>
170                 ///             Gets a string containing the concatenated file name and line number 
171 where the error occurred.
172                 /// </summary>
173                 public override string Message
174                 {
175                         get
176                         {
177                                 return _stringMessage;
178                         }
179                 }
180         }
181 }
182
183