You've already forked linux-packaging-mono
							
							
		
			
				
	
	
		
			93 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Xml;
 | |
| 
 | |
| namespace Commons.Xml.Nvdl
 | |
| {
 | |
| 	public class NvdlException : Exception
 | |
| 	{
 | |
| 		public NvdlException (string message)
 | |
| 			: base (message)
 | |
| 		{
 | |
| 		}
 | |
| 
 | |
| 		public NvdlException (string message, Exception inner)
 | |
| 			: base (message ,inner)
 | |
| 		{
 | |
| 		}
 | |
| 
 | |
| 		internal static string FormatMessage (string message,
 | |
| 			IXmlLineInfo lineInfo)
 | |
| 		{
 | |
| 			NvdlElementBase source = lineInfo as NvdlElementBase;
 | |
| 			XmlReader reader = lineInfo as XmlReader;
 | |
| 			if (source != null && source.HasLineInfo ())
 | |
| 				return String.Format ("{0}. {1} ({2},{3})",
 | |
| 					message, source.SourceUri,
 | |
| 					source.LineNumber, source.LinePosition);
 | |
| 			else if (lineInfo != null && lineInfo.HasLineInfo ())
 | |
| 				return String.Format ("{0}. {3}({1},{2})",
 | |
| 					message,
 | |
| 					lineInfo.LineNumber,
 | |
| 					lineInfo.LinePosition,
 | |
| 					reader != null ? reader.BaseURI + ' ' : String.Empty);
 | |
| 			else
 | |
| 				return message;
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	public class NvdlCompileException : NvdlException
 | |
| 	{
 | |
| 		public NvdlCompileException (string message,
 | |
| 			IXmlLineInfo source)
 | |
| 			: this (message, null, source)
 | |
| 		{
 | |
| 		}
 | |
| 
 | |
| 		public NvdlCompileException (string message, Exception inner,
 | |
| 			IXmlLineInfo source)
 | |
| 			: base (FormatMessage (message, source), inner)
 | |
| 		{
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	public class NvdlValidationException : NvdlException
 | |
| 	{
 | |
| 		public NvdlValidationException (string message,
 | |
| 			IXmlLineInfo source)
 | |
| 			: this (message, null, source)
 | |
| 		{
 | |
| 		}
 | |
| 
 | |
| 		public NvdlValidationException (string message, Exception inner,
 | |
| 			IXmlLineInfo source)
 | |
| 			: base (FormatMessage (message, source), inner)
 | |
| 		{
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	public class NvdlInstanceValidationException : NvdlException
 | |
| 	{
 | |
| 		public NvdlInstanceValidationException (string message,
 | |
| 			NvdlValidatorGenerator generator,
 | |
| 			string nvdlLocation)
 | |
| 			: this (message, null, generator, nvdlLocation)
 | |
| 		{
 | |
| 		}
 | |
| 
 | |
| 		public NvdlInstanceValidationException (string message, Exception inner,
 | |
| 			NvdlValidatorGenerator generator,
 | |
| 			string nvdlLocation)
 | |
| 			: base (FormatMessageWithDefinition (message, nvdlLocation), inner)
 | |
| 		{
 | |
| 		}
 | |
| 
 | |
| 		// assuming that wrapped exception message usually 
 | |
| 		// contains the actual instance location info.
 | |
| 		static string FormatMessageWithDefinition (string message, string nvdlLocation)
 | |
| 		{
 | |
| 			return String.Format ("{0}. Related NVDL script: {1}", message, nvdlLocation);
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 |