5bef67a880c1c016e17b6cfc66707811a563f9c7
[mono.git] / mcs / tools / cil-strip / Mono.Cecil / BaseReflectionVisitor.cs
1 //
2 // BaseReflectionVisitor.cs
3 //
4 // Author:
5 //   Jb Evain (jbevain@gmail.com)
6 //
7 // (C) 2005 Jb Evain
8 //
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:
16 //
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
19 //
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.
27 //
28
29 namespace Mono.Cecil {
30
31         using System.Collections;
32
33         internal abstract class BaseReflectionVisitor : IReflectionVisitor {
34
35                 public virtual void VisitModuleDefinition (ModuleDefinition module)
36                 {
37                 }
38
39                 public virtual void VisitTypeDefinitionCollection (TypeDefinitionCollection types)
40                 {
41                 }
42
43                 public virtual void VisitTypeDefinition (TypeDefinition type)
44                 {
45                 }
46
47                 public virtual void VisitTypeReferenceCollection (TypeReferenceCollection refs)
48                 {
49                 }
50
51                 public virtual void VisitTypeReference (TypeReference type)
52                 {
53                 }
54
55                 public virtual void VisitMemberReferenceCollection (MemberReferenceCollection members)
56                 {
57                 }
58
59                 public virtual void VisitMemberReference (MemberReference member)
60                 {
61                 }
62
63                 public virtual void VisitInterfaceCollection (InterfaceCollection interfaces)
64                 {
65                 }
66
67                 public virtual void VisitInterface (TypeReference interf)
68                 {
69                 }
70
71                 public virtual void VisitExternTypeCollection (ExternTypeCollection externs)
72                 {
73                 }
74
75                 public virtual void VisitExternType (TypeReference externType)
76                 {
77                 }
78
79                 public virtual void VisitOverrideCollection (OverrideCollection meth)
80                 {
81                 }
82
83                 public virtual void VisitOverride (MethodReference ov)
84                 {
85                 }
86
87                 public virtual void VisitNestedTypeCollection (NestedTypeCollection nestedTypes)
88                 {
89                 }
90
91                 public virtual void VisitNestedType (TypeDefinition nestedType)
92                 {
93                 }
94
95                 public virtual void VisitParameterDefinitionCollection (ParameterDefinitionCollection parameters)
96                 {
97                 }
98
99                 public virtual void VisitParameterDefinition (ParameterDefinition parameter)
100                 {
101                 }
102
103                 public virtual void VisitMethodDefinitionCollection (MethodDefinitionCollection methods)
104                 {
105                 }
106
107                 public virtual void VisitMethodDefinition (MethodDefinition method)
108                 {
109                 }
110
111                 public virtual void VisitConstructorCollection (ConstructorCollection ctors)
112                 {
113                 }
114
115                 public virtual void VisitConstructor (MethodDefinition ctor)
116                 {
117                 }
118
119                 public virtual void VisitPInvokeInfo (PInvokeInfo pinvk)
120                 {
121                 }
122
123                 public virtual void VisitEventDefinitionCollection (EventDefinitionCollection events)
124                 {
125                 }
126
127                 public virtual void VisitEventDefinition (EventDefinition evt)
128                 {
129                 }
130
131                 public virtual void VisitFieldDefinitionCollection (FieldDefinitionCollection fields)
132                 {
133                 }
134
135                 public virtual void VisitFieldDefinition (FieldDefinition field)
136                 {
137                 }
138
139                 public virtual void VisitPropertyDefinitionCollection (PropertyDefinitionCollection properties)
140                 {
141                 }
142
143                 public virtual void VisitPropertyDefinition (PropertyDefinition property)
144                 {
145                 }
146
147                 public virtual void VisitSecurityDeclarationCollection (SecurityDeclarationCollection secDecls)
148                 {
149                 }
150
151                 public virtual void VisitSecurityDeclaration (SecurityDeclaration secDecl)
152                 {
153                 }
154
155                 public virtual void VisitCustomAttributeCollection (CustomAttributeCollection customAttrs)
156                 {
157                 }
158
159                 public virtual void VisitCustomAttribute (CustomAttribute customAttr)
160                 {
161                 }
162
163                 public virtual void VisitGenericParameterCollection (GenericParameterCollection genparams)
164                 {
165                 }
166
167                 public virtual void VisitGenericParameter (GenericParameter genparam)
168                 {
169                 }
170
171                 public virtual void VisitMarshalSpec (MarshalSpec marshalSpec)
172                 {
173                 }
174
175                 public virtual void TerminateModuleDefinition (ModuleDefinition module)
176                 {
177                 }
178
179                 protected void VisitCollection (ICollection coll)
180                 {
181                         if (coll.Count == 0)
182                                 return;
183
184                         foreach (IReflectionVisitable visitable in coll)
185                                 visitable.Accept (this);
186                 }
187         }
188 }