Add licensing info
[mono.git] / mcs / class / Mono.Data.PostgreSqlClient / Mono.Data.PostgreSqlClient / PgSqlError.cs
1 //
2 // Mono.Data.PostgreSqlClient.PgSqlError.cs
3 //
4 // Author:
5 //   Rodrigo Moya (rodrigo@ximian.com)
6 //   Daniel Morgan (danmorg@sc.rr.com)
7 //
8 // (C) Ximian, Inc 2002
9 //
10
11 //
12 // Permission is hereby granted, free of charge, to any person obtaining
13 // a copy of this software and associated documentation files (the
14 // "Software"), to deal in the Software without restriction, including
15 // without limitation the rights to use, copy, modify, merge, publish,
16 // distribute, sublicense, and/or sell copies of the Software, and to
17 // permit persons to whom the Software is furnished to do so, subject to
18 // the following conditions:
19 // 
20 // The above copyright notice and this permission notice shall be
21 // included in all copies or substantial portions of the Software.
22 // 
23 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
27 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30 //
31 using System;
32 using System.Data;
33 using System.Runtime.InteropServices;
34
35 namespace Mono.Data.PostgreSqlClient
36 {
37         /// <summary>
38         /// Describes an error from a SQL database.
39         /// </summary>
40         [MonoTODO]
41         public sealed class PgSqlError
42         {
43                 byte theClass = 0;
44                 int lineNumber = 0;
45                 string message = "";
46                 int number = 0;
47                 string procedure = "";
48                 string server = "";
49                 string source = "";
50                 byte state = 0;
51
52                 internal PgSqlError(byte theClass, int lineNumber,
53                         string message, int number, string procedure,
54                         string server, string source, byte state) {
55                         this.theClass = theClass;
56                         this.lineNumber = lineNumber;
57                         this.message = message;
58                         this.number = number;
59                         this.procedure = procedure;
60                         this.server = server;
61                         this.source = source;
62                         this.state = state;
63                 }
64                 
65                 #region Properties
66
67                 [MonoTODO]
68                 /// <summary>
69                 /// severity level of the error
70                 /// </summary>
71                 public byte Class {
72                         get { 
73                                 return theClass;
74                         }
75                 }
76
77                 [MonoTODO]
78                 public int LineNumber {
79                         get { 
80                            return lineNumber;
81                    }
82                 }
83
84                 [MonoTODO]
85                 public string Message {
86                         get { 
87                                 return message;
88                         }
89                 }
90                 
91                 [MonoTODO]
92                 public int Number {
93                         get { 
94                                 return number;
95                         }
96                 }
97
98                 [MonoTODO]
99                 public string Procedure {
100                         get { 
101                                 return procedure;
102                         }
103                 }
104
105                 [MonoTODO]
106                 public string Server {
107                         get { 
108                                 return server;
109                         }
110                 }
111
112                 [MonoTODO]
113                 public string Source {
114                         get { 
115                                 return source;
116                         }
117                 }
118
119                 [MonoTODO]
120                 public byte State {
121                         get { 
122                                 return state;
123                         }
124                 }
125
126                 #endregion
127
128                 #region Methods
129
130                 [MonoTODO]
131                 public override string ToString ()
132                 {
133                         String toStr;
134                         String stackTrace;
135                         stackTrace = " <Stack Trace>";
136                         // FIXME: generate the correct SQL error string
137                         toStr = "PgSqlError:" + message + stackTrace;
138                         return toStr;
139                 }
140
141                 internal void SetClass(byte theClass) {
142                         this.theClass = theClass;
143                 }
144
145                 internal void SetLineNumber(int lineNumber) {
146                         this.lineNumber = lineNumber;
147                 }
148
149                 internal void SetMessage(string message) {
150                         this.message = message;
151                 }
152
153                 internal void SetNumber(int number) {
154                         this.number = number;
155                 }
156
157                 internal void SetProcedure(string procedure) {
158                         this.procedure = procedure;
159                 }
160
161                 internal void SetServer(string server) {
162                         this.server = server;
163                 }
164
165                 internal void SetSource(string source) {
166                         this.source = source;
167                 }
168
169                 internal void SetState(byte state) {
170                         this.state = state;
171                 }
172
173                 #endregion
174                 
175         }
176 }