2 // ToolsetCollection.cs
5 // Ankit Jain (jankit@novell.com)
7 // Copyright 2010 Novell, Inc (http://www.novell.com)
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 using System
.Collections
.Generic
;
32 using System
.Collections
;
34 namespace Microsoft
.Build
.BuildEngine
37 public class ToolsetCollection
: ICollection
<Toolset
>, IEnumerable
<Toolset
>, IEnumerable
39 List
<Toolset
> toolsets
;
41 internal ToolsetCollection ()
43 toolsets
= new List
<Toolset
> ();
48 get { return toolsets.Count; }
51 public bool IsReadOnly { get { return false; }
}
53 public Toolset
this [string toolsVersion
]
55 get { return toolsets.Find (item => item.ToolsVersion == toolsVersion); }
58 public void Add (Toolset item
)
68 public bool Contains (string toolsVersion
)
70 return toolsets
.Exists (item
=> item
.ToolsVersion
== toolsVersion
);
73 public bool Contains (Toolset item
)
75 return toolsets
.Contains (item
);
78 public void CopyTo (Toolset
[] array
, int arrayIndex
)
80 toolsets
.CopyTo (array
, arrayIndex
);
83 public IEnumerator
<Toolset
> GetEnumerator ()
85 return toolsets
.GetEnumerator ();
88 IEnumerator IEnumerable
.GetEnumerator ()
90 return toolsets
.GetEnumerator ();
93 public bool Remove (Toolset item
)
95 return toolsets
.Remove (item
);