2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
[mono.git] / mcs / class / System.XML / System.Xml.Xsl / XsltException.cs
1 //
2 // System.Xml.Xsl.XsltException.cs
3 //
4 // Authors:
5 //  Tim Coleman (tim@timcoleman.com)
6 //  Andreas Nahr (ClassDevelopment@A-SoftTech.com)
7 //
8 // (C) Copyright 2002 Tim Coleman
9 // (C) 2003 Andreas Nahr
10 //
11 \r
12 using System;\r
13 using System.Runtime.Serialization;\r
14 using System.Xml.XPath;\r
15 \r
16 namespace System.Xml.Xsl\r
17 {\r
18         [Serializable]\r
19         public class XsltException : SystemException\r
20         {\r
21                 #region Fields\r
22 \r
23                 string message;\r
24                 int lineNumber;\r
25                 int linePosition;\r
26                 string sourceUri;\r
27 \r
28                 #endregion\r
29 \r
30                 #region Constructors\r
31 \r
32                 public XsltException (string message, Exception innerException)\r
33                         : base (message, innerException)\r
34                 {\r
35                         this.message = message;\r
36                 }\r
37 \r
38                 protected XsltException (SerializationInfo info, StreamingContext context)\r
39                 {\r
40                         lineNumber = info.GetInt32 ("lineNumber");\r
41                         linePosition = info.GetInt32 ("linePosition");\r
42                         sourceUri = info.GetString ("sourceUri");\r
43                 }
44
45                 internal XsltException (string message, Exception innerException, int lineNumber, int linePosition, string sourceUri)
46                         : base (message, innerException)\r
47                 {\r
48                         this.lineNumber = lineNumber;\r
49                         this.linePosition = linePosition;\r
50                         this.sourceUri = sourceUri;\r
51                 }\r
52 \r
53                 internal XsltException (string message, Exception innerException, XPathNavigator nav)
54                         : base (message, innerException)\r
55                 {\r
56                         IXmlLineInfo li = nav as IXmlLineInfo;\r
57                         this.lineNumber = li != null ? li.LineNumber : 0;\r
58                         this.linePosition = li != null ? li.LinePosition : 0;\r
59                         this.sourceUri = nav != null ? nav.BaseURI : String.Empty;\r
60                 }\r
61 \r
62                 #endregion\r
63 \r
64                 #region Properties\r
65 \r
66                 public int LineNumber {\r
67                         get { return lineNumber; }\r
68                 }\r
69 \r
70                 public int LinePosition {\r
71                         get { return linePosition; }\r
72                 }\r
73 \r
74                 public override string Message {\r
75                         get { return message; }\r
76                 }\r
77 \r
78                 public string SourceUri {\r
79                         get { return sourceUri; }\r
80                 }\r
81 \r
82                 #endregion\r
83 \r
84                 #region Methods\r
85 \r
86                 public override void GetObjectData (SerializationInfo info, StreamingContext context)\r
87                 {\r
88                         base.GetObjectData (info, context);\r
89                         info.AddValue ("lineNumber", lineNumber);\r
90                         info.AddValue ("linePosition", linePosition);\r
91                         info.AddValue ("sourceUri", sourceUri);\r
92                 }\r
93 \r
94                 #endregion\r
95         }\r
96 }\r