2005-06-05 Peter Bartok <pbartok@novell.com>
[mono.git] / mcs / nant / src / Attributes / BooleanValidatorAttribute.cs
1 // NAnt - A .NET build tool\r
2 // Copyright (C) 2001 Gerry Shaw\r
3 //\r
4 // This program is free software; you can redistribute it and/or modify\r
5 // it under the terms of the GNU General Public License as published by\r
6 // the Free Software Foundation; either version 2 of the License, or\r
7 // (at your option) any later version.\r
8 //\r
9 // This program is distributed in the hope that it will be useful,\r
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of\r
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
12 // GNU General Public License for more details.\r
13 //\r
14 // You should have received a copy of the GNU General Public License\r
15 // along with this program; if not, write to the Free Software\r
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
17 //\r
18 // Gerry Shaw (gerry_shaw@yahoo.com)\r
19 \r
20 namespace SourceForge.NAnt {\r
21 \r
22     using System;\r
23     using System.Reflection;\r
24 \r
25     /// <summary>Indicates that field should be able to be converted into a Boolean.</summary>\r
26     [AttributeUsage(AttributeTargets.Field, Inherited=true)]\r
27     public class BooleanValidatorAttribute : ValidatorAttribute {\r
28 \r
29         public BooleanValidatorAttribute() {\r
30         }\r
31 \r
32         public override string Validate(object value) {\r
33             string errorMessage = null;\r
34             try {\r
35                 Convert.ToBoolean(value);\r
36             } catch (Exception) {\r
37                 errorMessage = String.Format("Cannot resolve to '{0}' to Boolean value.", value.ToString());\r
38             }\r
39             return errorMessage;\r
40         }\r
41     }\r
42 }