2005-06-05 Peter Bartok <pbartok@novell.com>
[mono.git] / mcs / nant / src / TaskBuilderCollection.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.Collections;\r
24 \r
25     public class TaskBuilderCollection : ArrayList {\r
26 \r
27         public bool Add(TaskBuilder builder) {\r
28             // prevent adding duplicate builders with the name task name\r
29             bool taskAdded = false;\r
30             if (GetBuilderForTask(builder.TaskName) == null) {\r
31                 base.Add(builder);\r
32                 taskAdded = true;\r
33             }\r
34             return taskAdded;\r
35         }\r
36 \r
37         public TaskBuilder GetBuilderForTask(string taskName) {\r
38             foreach (TaskBuilder builder in this) {\r
39                 if (builder.TaskName == taskName) {\r
40                     return builder;\r
41                 }\r
42             }\r
43             return null;\r
44         }\r
45     }\r
46 }