2002-09-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
[mono.git] / mcs / class / System / System.CodeDom / CodeTypeReferenceCollection.cs
1 //
2 // System.CodeDom CodeTypeReferenceCollection Class implementation
3 //
4 // Author:
5 //   Daniel Stodden (stodden@in.tum.de)
6 //
7 // (C) 2002 Ximian, Inc.
8 //
9
10 using System.Runtime.InteropServices;
11 using System.Collections;
12
13 namespace System.CodeDom 
14 {
15         [Serializable]
16         [ClassInterface(ClassInterfaceType.AutoDispatch)]
17         [ComVisible(true)]
18         public class CodeTypeReferenceCollection
19                 : CollectionBase
20         {
21                 //
22                 // Constructors
23                 //
24                 public CodeTypeReferenceCollection()
25                 {
26                 }
27
28                 public CodeTypeReferenceCollection( CodeTypeReference[] value )
29                 {
30                         AddRange( value );
31                 }
32
33                 public CodeTypeReferenceCollection( CodeTypeReferenceCollection value )
34                 {
35                         AddRange( value );
36                 }
37
38                 //
39                 // Properties
40                 //
41                 public CodeTypeReference this[int index]
42                 {
43                         get {
44                                 return (CodeTypeReference)List[index];
45                         }
46                         set {
47                                 List[index] = value;
48                         }
49                 }
50
51                 //
52                 // Methods
53                 //
54                 public int Add (CodeTypeReference value)
55                 {
56                         return List.Add( value );
57                 }
58
59                 public void Add (string value)
60                 {
61                         Add (new CodeTypeReference (value));
62                 }
63
64                 public void Add (Type value)
65                 {
66                         Add (new CodeTypeReference (value));
67                 }
68
69                 public void AddRange (CodeTypeReference [] value )
70                 {
71                         foreach ( CodeTypeReference elem in value )
72                                 Add( elem );
73                 }
74                 
75                 public void AddRange (CodeTypeReferenceCollection value)
76                 {
77                         foreach ( CodeTypeReference elem in value )
78                                 Add( elem );
79                 }
80
81                 public bool Contains( CodeTypeReference value )
82                 {
83                         return List.Contains( value );
84                 }
85                 
86                 public void CopyTo( CodeTypeReference[] array, int index )
87                 {
88                         List.CopyTo( array, index );
89                 }
90
91                 public int IndexOf( CodeTypeReference value )
92                 {
93                         return List.IndexOf( value );
94                 }
95
96                 public void Insert( int index, CodeTypeReference value )
97                 {
98                         List.Insert( index, value );
99                 }
100
101                 public void Remove( CodeTypeReference value )
102                 {
103                         int index = IndexOf( value );
104                         if ( index < 0 )
105                                 throw( new ArgumentException( "The specified object is not found in the collection" ) );
106                         RemoveAt( index );
107                 }
108         }
109 }