2005-09-25 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / Commons.Xml.Relaxng / Commons.Xml.Nvdl / NvdlException.cs
1 using System;
2 using System.Xml;
3
4 namespace Commons.Xml.Nvdl
5 {
6         public class NvdlException : Exception
7         {
8                 public NvdlException (string message)
9                         : base (message)
10                 {
11                 }
12
13                 public NvdlException (string message, Exception inner)
14                         : base (message ,inner)
15                 {
16                 }
17
18                 internal static string FormatMessage (string message,
19                         IXmlLineInfo lineInfo)
20                 {
21                         NvdlElementBase source = lineInfo as NvdlElementBase;
22                         if (source != null && source.HasLineInfo ())
23                                 return String.Format ("{0}. {1} ({2},{3})",
24                                         message, source.SourceUri,
25                                         source.LineNumber, source.LinePosition);
26                         else if (lineInfo != null)
27                                 return String.Format ("{0}. ({1},{2})",
28                                         message,
29                                         lineInfo.LineNumber, lineInfo.LinePosition);
30                         else
31                                 return message;
32                 }
33         }
34
35         public class NvdlCompileException : NvdlException
36         {
37                 public NvdlCompileException (string message,
38                         IXmlLineInfo source)
39                         : this (message, null, source)
40                 {
41                 }
42
43                 public NvdlCompileException (string message, Exception inner,
44                         IXmlLineInfo source)
45                         : base (FormatMessage (message, source), inner)
46                 {
47                 }
48         }
49
50         public class NvdlValidationException : NvdlException
51         {
52                 public NvdlValidationException (string message,
53                         IXmlLineInfo source)
54                         : this (message, null, source)
55                 {
56                 }
57
58                 public NvdlValidationException (string message, Exception inner,
59                         IXmlLineInfo source)
60                         : base (FormatMessage (message, source), inner)
61                 {
62                 }
63         }
64 }
65