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    }