001 package edu.rice.cs.cunit.classFile.attributes.visitors;
002
003 import edu.rice.cs.cunit.classFile.attributes.*;
004
005 /**
006 * An attribute visitor in which all cases call an abstract default method.
007 *
008 * @author Mathias Ricken
009 */
010 public abstract class ADefaultAttributeVisitor <R, D> implements IAttributeVisitor<R, D> {
011 /**
012 * Abstract default case.
013 *
014 * @param host host
015 * @param param visitor-specific parameter
016 *
017 * @return visitor-specific return value
018 */
019 public abstract R defaultCase(AAttributeInfo host, D param);
020
021 /**
022 * Case for SourceFile attribute.
023 *
024 * @param host attribute
025 * @param param visitor-specific parameter
026 *
027 * @return visitor-specific return vakue
028 */
029 public R sourceFileCase(SourceFileAttributeInfo host, D param) {
030 return defaultCase(host, param);
031 }
032
033 /**
034 * Case for ConstantValue attribute.
035 *
036 * @param host attribute
037 * @param param visitor-specific parameter
038 *
039 * @return visitor-specific return vakue
040 */
041 public R constantValueCase(ConstantValueAttributeInfo host, D param) {
042 return defaultCase(host, param);
043 }
044
045 /**
046 * Case for an unknown attribute.
047 *
048 * @param host attribute
049 * @param param visitor-specific parameter
050 *
051 * @return visitor-specific return vakue
052 */
053 public R unknownCase(UnknownAttributeInfo host, D param) {
054 return defaultCase(host, param);
055 }
056
057 /**
058 * Case for Code attribute.
059 *
060 * @param host attribute
061 * @param param visitor-specific parameter
062 *
063 * @return visitor-specific return vakue
064 */
065 public R codeCase(CodeAttributeInfo host, D param) {
066 return defaultCase(host, param);
067 }
068
069 /**
070 * Case for Exceptions attribute.
071 *
072 * @param host attribute
073 * @param param visitor-specific parameter
074 *
075 * @return visitor-specific return vakue
076 */
077 public R exceptionsCase(ExceptionsAttributeInfo host, D param) {
078 return defaultCase(host, param);
079 }
080
081 /**
082 * Case for LineNumberTable attribute.
083 *
084 * @param host attribute
085 * @param param visitor-specific parameter
086 *
087 * @return visitor-specific return vakue
088 */
089 public R lineNumberTableCase(LineNumberTableAttributeInfo host, D param) {
090 return defaultCase(host, param);
091 }
092
093 /**
094 * Case for LocalVariableTable attribute.
095 *
096 * @param host attribute
097 * @param param visitor-specific parameter
098 *
099 * @return visitor-specific return vakue
100 */
101 public R localVariableTableCase(LocalVariableTableAttributeInfo host, D param) {
102 return defaultCase(host, param);
103 }
104
105 /**
106 * Case for LocalVariableTypeTable attribute.
107 *
108 * @param host attribute
109 * @param param visitor-specific parameter
110 *
111 * @return visitor-specific return vakue
112 */
113 public R localVariableTypeTableCase(LocalVariableTypeTableAttributeInfo host, D param) {
114 return defaultCase(host, param);
115 }
116
117 /**
118 * Case for Signature attribute.
119 *
120 * @param host attribute
121 * @param param visitor-specific parameter
122 *
123 * @return visitor-specific return vakue
124 */
125 public R signatureCase(SignatureAttributeInfo host, D param) {
126 return defaultCase(host, param);
127 }
128
129
130 /**
131 * Case for an AnnotationDefault attribute.
132 *
133 * @param host attribute
134 * @param param visitor-specific parameter
135 *
136 * @return visitor-specific return vakue
137 */
138 public R annotationDefaultCase(AnnotationDefaultAttributeInfo host, D param) {
139 return defaultCase(host, param);
140 }
141
142 /**
143 * Case for a RuntimeVisibleAnnotations attribute.
144 *
145 * @param host attribute
146 * @param param visitor-specific parameter
147 *
148 * @return visitor-specific return vakue
149 */
150 public R runtimeVisibleAnnotationsCase(RuntimeVisibleAnnotationsAttributeInfo host, D param) {
151 return defaultCase(host, param);
152 }
153
154 /**
155 * Case for a RuntimeInvisibleAnnotations attribute.
156 *
157 * @param host attribute
158 * @param param visitor-specific parameter
159 *
160 * @return visitor-specific return vakue
161 */
162 public R runtimeInvisibleAnnotationsCase(RuntimeInvisibleAnnotationsAttributeInfo host, D param) {
163 return defaultCase(host, param);
164 }
165
166 /**
167 * Case for a RuntimeVisibleParameterAnnotations attribute.
168 *
169 * @param host attribute
170 * @param param visitor-specific parameter
171 *
172 * @return visitor-specific return vakue
173 */
174 public R runtimeVisibleParameterAnnotationsCase(RuntimeVisibleParameterAnnotationsAttributeInfo host, D param) {
175 return defaultCase(host, param);
176 }
177
178 /**
179 * Case for a RuntimeInvisibleParameterAnnotations attribute.
180 *
181 * @param host attribute
182 * @param param visitor-specific parameter
183 *
184 * @return visitor-specific return vakue
185 */
186 public R runtimeInvisibleParameterAnnotationsCase(RuntimeInvisibleParameterAnnotationsAttributeInfo host, D param) {
187 return defaultCase(host, param);
188 }
189
190 /**
191 * Case for a InnerClasses attribute.
192 *
193 * @param host attribute
194 * @param param visitor-specific parameter
195 *
196 * @return visitor-specific return vakue
197 */
198 public R innerClassesCase(InnerClassesAttributeInfo host, D param) {
199 return defaultCase(host, param);
200 }
201
202 /**
203 * Case for a Synthetic attribute.
204 *
205 * @param host attribute
206 * @param param visitor-specific parameter
207 *
208 * @return visitor-specific return vakue
209 */
210 public R syntheticCase(SyntheticAttributeInfo host, D param) {
211 return defaultCase(host, param);
212 }
213
214 /**
215 * Case for a EnclosingMethod attribute.
216 *
217 * @param host attribute
218 * @param param visitor-specific parameter
219 *
220 * @return visitor-specific return vakue
221 */
222 public R enclosingMethodCase(EnclosingMethodAttributeInfo host, D param) {
223 return defaultCase(host, param);
224 }
225
226 /**
227 * Case for a Deprecated attribute.
228 *
229 * @param host attribute
230 * @param param visitor-specific parameter
231 *
232 * @return visitor-specific return vakue
233 */
234 public R deprecatedCase(DeprecatedAttributeInfo host, D param) {
235 return defaultCase(host, param);
236 }
237
238 /**
239 * Case for a Instrumentation attribute.
240 *
241 * @param host attribute
242 * @param param visitor-specific parameter
243 *
244 * @return visitor-specific return vakue
245 */
246 public R instrumentationCase(InstrumentationAttributeInfo host, D param) {
247 return defaultCase(host, param);
248 }
249
250 // non-standard:
251
252 /**
253 * Case for a (non-standard) RuntimeInvisibleLocalVariableAnnotations attribute.
254 *
255 * @param host attribute
256 * @param param visitor-specific parameter
257 *
258 * @return visitor-specific return vakue
259 */
260 public R runtimeInvisibleLocalVariableAnnotationsCase(RuntimeInvisibleLocalVariableAnnotationsAttributeInfo host, D param) {
261 return defaultCase(host, param);
262 }
263
264
265 /**
266 * Case for a (non-standard) RuntimeVisibleLocalVariableAnnotations attribute.
267 *
268 * @param host attribute
269 * @param param visitor-specific parameter
270 *
271 * @return visitor-specific return vakue
272 */
273 public R runtimeVisibleLocalVariableAnnotationsCase(RuntimeVisibleLocalVariableAnnotationsAttributeInfo host, D param) {
274 return defaultCase(host, param);
275 }
276 }