[Csmail-patches] CVS: csmail/nant/src/Attributes BooleanValidatorAttribute.cs,NONE,1.1 Int32Validato
Status: Pre-Alpha
Brought to you by:
mastergaurav
From: Gaurav V. <mas...@us...> - 2002-07-24 10:46:26
|
Update of /cvsroot/csmail/csmail/nant/src/Attributes In directory usw-pr-cvs1:/tmp/cvs-serv25536/nant/src/Attributes Added Files: BooleanValidatorAttribute.cs Int32ValidatorAttribute.cs TaskAttributeAttribute.cs TaskFileSetAttribute.cs TaskNameAttribute.cs ValidatorAttribute.cs Log Message: 2002-02-24 Gaurav Vaish <mastergaurav AT users DOT sf DOT net> * Added the source code of NAnt. --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) namespace SourceForge.NAnt { using System; using System.Reflection; /// <summary>Indicates that field should be able to be converted into a Boolean.</summary> [AttributeUsage(AttributeTargets.Field, Inherited=true)] public class BooleanValidatorAttribute : ValidatorAttribute { public BooleanValidatorAttribute() { } public override string Validate(object value) { string errorMessage = null; try { Convert.ToBoolean(value); } catch (Exception) { errorMessage = String.Format("Cannot resolve to '{0}' to Boolean value.", value.ToString()); } return errorMessage; } } } --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) namespace SourceForge.NAnt { using System; using System.Reflection; /// <summary>Indicates that field should be able to be converted into a Int32 within the given range.</summary> [AttributeUsage(AttributeTargets.Field, Inherited=true)] public class Int32ValidatorAttribute : ValidatorAttribute { int _minValue = Int32.MinValue; int _maxValue = Int32.MaxValue; public Int32ValidatorAttribute() { } public Int32ValidatorAttribute(int minValue, int maxValue) { MinValue = minValue; MaxValue = maxValue; } public int MinValue { get { return _minValue; } set { _minValue = value; } } public int MaxValue { get { return _maxValue; } set { _maxValue = value; } } public override string Validate(object value) { string errorMessage = null; try { Int32 intValue = Convert.ToInt32(value); if (intValue < MinValue || intValue > MaxValue) { errorMessage = String.Format("Cannot resolve '{0}' to integer between '{1}' and '{2}'.", value.ToString(), MinValue, MaxValue); } } catch (Exception) { errorMessage = String.Format("Cannot resolve '{0}' to integer value.", value.ToString()); } return errorMessage; } } } --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) namespace SourceForge.NAnt { using System; using System.Reflection; /// <summary>Indicates that field should be treated as a xml attribute for the task.</summary> /// <example> /// Examples of how to specify task attributes /// <code> /// // task XmlType default is string /// [TaskAttribute("out", Required=true)] /// string _out = null; // assign default value here /// /// [TaskAttribute("optimize")] /// [BooleanValidator()] /// // during ExecuteTask you can safely use Convert.ToBoolean(_optimize) /// string _optimize = Boolean.FalseString; /// /// [TaskAttribute("warnlevel")] /// [Int32Validator(0,4)] // limit values to 0-4 /// // during ExecuteTask you can safely use Convert.ToInt32(_optimize) /// string _warnlevel = "0"; /// /// [TaskFileSet("sources")] /// FileSet _sources = new FileSet(); /// </code> /// NOTE: Attribute values must be of type of string if you want /// to be able to have macros. The field stores the exact value during /// InitializeTask. Just before ExecuteTask is called NAnt will expand /// all the macros with the current values. [AttributeUsage(AttributeTargets.Field, Inherited=true)] public class TaskAttributeAttribute : Attribute { string _name; bool _required; bool _expandText; public TaskAttributeAttribute(string name) { Name = name; Required = false; ExpandText = true; } public string Name { get { return _name; } set { _name = value; } } public bool Required { get { return _required; } set { _required = value; } } public bool ExpandText { get { return _expandText; } set { _expandText = value; } } } } --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) namespace SourceForge.NAnt { using System; using System.Reflection; /// <summary>Indicates that field should be treated as a xml file set for the task.</summary> [AttributeUsage(AttributeTargets.Field, Inherited=true)] public class TaskFileSetAttribute : Attribute { string _name; public TaskFileSetAttribute(string name) { Name = name; } public string Name { get { return _name; } set { _name = value; } } } } --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) namespace SourceForge.NAnt { using System; using System.Reflection; /// <summary>Indicates that class should be treated as a task.</summary> /// <remarks> /// Attach this attribute to a subclass of Task to have NAnt be able /// to reconize it. The name should be short but must not confict /// with any other task already in use. /// </remarks> [AttributeUsage(AttributeTargets.Class, Inherited=false, AllowMultiple=false)] public class TaskNameAttribute : Attribute { string _name; public TaskNameAttribute(string name) { _name = name; } public string Name { get { return _name; } set { _name = value; } } } } --- NEW FILE --- // NAnt - A .NET build tool // Copyright (C) 2001 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gerry Shaw (ger...@ya...) namespace SourceForge.NAnt { using System; using System.Reflection; public abstract class ValidatorAttribute : Attribute { public abstract string Validate(object value); } } |