• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements.  See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License.  You may obtain a copy of the License at
8  *
9  *   http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  */
18 
19 package org.apache.bcel.visitors;
20 
21 import org.apache.bcel.classfile.AnnotationDefault;
22 import org.apache.bcel.classfile.AnnotationEntry;
23 import org.apache.bcel.classfile.Annotations;
24 import org.apache.bcel.classfile.BootstrapMethods;
25 import org.apache.bcel.classfile.Code;
26 import org.apache.bcel.classfile.CodeException;
27 import org.apache.bcel.classfile.ConstantClass;
28 import org.apache.bcel.classfile.ConstantDouble;
29 import org.apache.bcel.classfile.ConstantDynamic;
30 import org.apache.bcel.classfile.ConstantFieldref;
31 import org.apache.bcel.classfile.ConstantFloat;
32 import org.apache.bcel.classfile.ConstantInteger;
33 import org.apache.bcel.classfile.ConstantInterfaceMethodref;
34 import org.apache.bcel.classfile.ConstantInvokeDynamic;
35 import org.apache.bcel.classfile.ConstantLong;
36 import org.apache.bcel.classfile.ConstantMethodHandle;
37 import org.apache.bcel.classfile.ConstantMethodType;
38 import org.apache.bcel.classfile.ConstantMethodref;
39 import org.apache.bcel.classfile.ConstantModule;
40 import org.apache.bcel.classfile.ConstantNameAndType;
41 import org.apache.bcel.classfile.ConstantPackage;
42 import org.apache.bcel.classfile.ConstantPool;
43 import org.apache.bcel.classfile.ConstantString;
44 import org.apache.bcel.classfile.ConstantUtf8;
45 import org.apache.bcel.classfile.ConstantValue;
46 import org.apache.bcel.classfile.Deprecated;
47 import org.apache.bcel.classfile.EnclosingMethod;
48 import org.apache.bcel.classfile.ExceptionTable;
49 import org.apache.bcel.classfile.Field;
50 import org.apache.bcel.classfile.InnerClass;
51 import org.apache.bcel.classfile.InnerClasses;
52 import org.apache.bcel.classfile.JavaClass;
53 import org.apache.bcel.classfile.LineNumber;
54 import org.apache.bcel.classfile.LineNumberTable;
55 import org.apache.bcel.classfile.LocalVariable;
56 import org.apache.bcel.classfile.LocalVariableTable;
57 import org.apache.bcel.classfile.LocalVariableTypeTable;
58 import org.apache.bcel.classfile.Method;
59 import org.apache.bcel.classfile.MethodParameters;
60 import org.apache.bcel.classfile.ParameterAnnotationEntry;
61 import org.apache.bcel.classfile.ParameterAnnotations;
62 import org.apache.bcel.classfile.Signature;
63 import org.apache.bcel.classfile.SourceFile;
64 import org.apache.bcel.classfile.StackMap;
65 import org.apache.bcel.classfile.StackMapEntry;
66 import org.apache.bcel.classfile.Synthetic;
67 import org.apache.bcel.classfile.Unknown;
68 import org.apache.bcel.classfile.Visitor;
69 
70 public class CounterVisitor implements Visitor
71 {
72     // CHECKSTYLE:OFF (public mutable fields in test code)
73     public int unknownCount = 0;
74 
75     public int syntheticCount = 0;
76 
77     public int stackMapEntryCount = 0;
78 
79     public int stackMapCount = 0;
80 
81     public int sourceFileCount = 0;
82 
83     public int signatureAnnotationCount = 0;
84 
85     public int parameterAnnotationCount = 0;
86 
87     public int methodCount = 0;
88 
89     public int localVariableTypeTableCount = 0;
90 
91     public int localVariableTableCount = 0;
92 
93     public int localVariableCount = 0;
94 
95     public int lineNumberTableCount = 0;
96 
97     public int lineNumberCount = 0;
98 
99     public int javaClassCount = 0;
100 
101     public int innerClassesCount = 0;
102 
103     public int innerClassCount = 0;
104 
105     public int fieldCount = 0;
106 
107     public int exceptionTableCount = 0;
108 
109     public int enclosingMethodCount = 0;
110 
111     public int deprecatedCount = 0;
112 
113     public int constantValueCount = 0;
114 
115     public int constantUtf8Count = 0;
116 
117     public int constantStringCount = 0;
118 
119     public int constantNameAndTypeCount = 0;
120 
121     public int constantPoolCount = 0;
122 
123     public int constantMethodrefCount = 0;
124 
125     public int constantLongCount = 0;
126 
127     public int constantIntegerCount = 0;
128 
129     public int constantInterfaceMethodrefCount = 0;
130 
131     public int constantFloatCount = 0;
132 
133     public int constantFieldrefCount = 0;
134 
135     public int constantClassCount = 0;
136 
137     public int constantDoubleCount = 0;
138 
139     public int codeExceptionCount = 0;
140 
141     public int codeCount = 0;
142 
143     public int annotationEntryCount = 0;
144 
145     public int annotationDefaultCount = 0;
146 
147     public int annotationCount = 0;
148 
149     /** @since 6.0 */
150     public int bootstrapMethodsCount = 0;
151 
152     /** @since 6.0 */
153     public int methodParametersCount = 0;
154 
155     /** @since 6.0 */
156     public int constantInvokeDynamic = 0;
157 
158     /** @since 6.1 */
159     public int constantModuleCount = 0;
160 
161     /** @since 6.1 */
162     public int constantPackageCount = 0;
163 
164     /** @since 6.3 */
165     public int constantDynamicCount = 0;
166     // CHECKSTYLE:ON
167 
168 
169     @Override
visitAnnotation(final Annotations obj)170     public void visitAnnotation(final Annotations obj)
171     {
172         annotationCount++;
173     }
174 
175     @Override
visitAnnotationDefault(final AnnotationDefault obj)176     public void visitAnnotationDefault(final AnnotationDefault obj)
177     {
178         annotationDefaultCount++;
179     }
180 
181     @Override
visitAnnotationEntry(final AnnotationEntry obj)182     public void visitAnnotationEntry(final AnnotationEntry obj)
183     {
184         annotationEntryCount++;
185     }
186 
187     @Override
visitCode(final Code obj)188     public void visitCode(final Code obj)
189     {
190         codeCount++;
191     }
192 
193     @Override
visitCodeException(final CodeException obj)194     public void visitCodeException(final CodeException obj)
195     {
196         codeExceptionCount++;
197     }
198 
199     @Override
visitConstantClass(final ConstantClass obj)200     public void visitConstantClass(final ConstantClass obj)
201     {
202         constantClassCount++;
203     }
204 
205     @Override
visitConstantDouble(final ConstantDouble obj)206     public void visitConstantDouble(final ConstantDouble obj)
207     {
208         constantDoubleCount++;
209     }
210 
211     @Override
visitConstantFieldref(final ConstantFieldref obj)212     public void visitConstantFieldref(final ConstantFieldref obj)
213     {
214         constantFieldrefCount++;
215     }
216 
217     @Override
visitConstantFloat(final ConstantFloat obj)218     public void visitConstantFloat(final ConstantFloat obj)
219     {
220         constantFloatCount++;
221     }
222 
223     @Override
visitConstantInteger(final ConstantInteger obj)224     public void visitConstantInteger(final ConstantInteger obj)
225     {
226         constantIntegerCount++;
227     }
228 
229     @Override
visitConstantInterfaceMethodref(final ConstantInterfaceMethodref obj)230     public void visitConstantInterfaceMethodref(final ConstantInterfaceMethodref obj)
231     {
232         constantInterfaceMethodrefCount++;
233     }
234 
235     @Override
visitConstantLong(final ConstantLong obj)236     public void visitConstantLong(final ConstantLong obj)
237     {
238         constantLongCount++;
239     }
240 
241     @Override
visitConstantMethodref(final ConstantMethodref obj)242     public void visitConstantMethodref(final ConstantMethodref obj)
243     {
244         constantMethodrefCount++;
245     }
246 
247     @Override
visitConstantNameAndType(final ConstantNameAndType obj)248     public void visitConstantNameAndType(final ConstantNameAndType obj)
249     {
250         constantNameAndTypeCount++;
251     }
252 
253     @Override
visitConstantPool(final ConstantPool obj)254     public void visitConstantPool(final ConstantPool obj)
255     {
256         constantPoolCount++;
257     }
258 
259     @Override
visitConstantString(final ConstantString obj)260     public void visitConstantString(final ConstantString obj)
261     {
262         constantStringCount++;
263     }
264 
265     @Override
visitConstantUtf8(final ConstantUtf8 obj)266     public void visitConstantUtf8(final ConstantUtf8 obj)
267     {
268         constantUtf8Count++;
269     }
270 
271     @Override
visitConstantValue(final ConstantValue obj)272     public void visitConstantValue(final ConstantValue obj)
273     {
274         constantValueCount++;
275     }
276 
277     @Override
visitDeprecated(final Deprecated obj)278     public void visitDeprecated(final Deprecated obj)
279     {
280         deprecatedCount++;
281     }
282 
283     @Override
visitEnclosingMethod(final EnclosingMethod obj)284     public void visitEnclosingMethod(final EnclosingMethod obj)
285     {
286         enclosingMethodCount++;
287     }
288 
289     @Override
visitExceptionTable(final ExceptionTable obj)290     public void visitExceptionTable(final ExceptionTable obj)
291     {
292         exceptionTableCount++;
293     }
294 
295     @Override
visitField(final Field obj)296     public void visitField(final Field obj)
297     {
298         fieldCount++;
299     }
300 
301     @Override
visitInnerClass(final InnerClass obj)302     public void visitInnerClass(final InnerClass obj)
303     {
304         innerClassCount++;
305     }
306 
307     @Override
visitInnerClasses(final InnerClasses obj)308     public void visitInnerClasses(final InnerClasses obj)
309     {
310         innerClassesCount++;
311     }
312 
313     @Override
visitJavaClass(final JavaClass obj)314     public void visitJavaClass(final JavaClass obj)
315     {
316         javaClassCount++;
317     }
318 
319     @Override
visitLineNumber(final LineNumber obj)320     public void visitLineNumber(final LineNumber obj)
321     {
322         lineNumberCount++;
323     }
324 
325     @Override
visitLineNumberTable(final LineNumberTable obj)326     public void visitLineNumberTable(final LineNumberTable obj)
327     {
328         lineNumberTableCount++;
329     }
330 
331     @Override
visitLocalVariable(final LocalVariable obj)332     public void visitLocalVariable(final LocalVariable obj)
333     {
334         localVariableCount++;
335     }
336 
337     @Override
visitLocalVariableTable(final LocalVariableTable obj)338     public void visitLocalVariableTable(final LocalVariableTable obj)
339     {
340         localVariableTableCount++;
341     }
342 
343     @Override
visitLocalVariableTypeTable(final LocalVariableTypeTable obj)344     public void visitLocalVariableTypeTable(final LocalVariableTypeTable obj)
345     {
346         localVariableTypeTableCount++;
347     }
348 
349     @Override
visitMethod(final Method obj)350     public void visitMethod(final Method obj)
351     {
352         methodCount++;
353     }
354 
355     @Override
visitParameterAnnotation(final ParameterAnnotations obj)356     public void visitParameterAnnotation(final ParameterAnnotations obj)
357     {
358         parameterAnnotationCount++;
359     }
360 
361     @Override
visitSignature(final Signature obj)362     public void visitSignature(final Signature obj)
363     {
364         signatureAnnotationCount++;
365     }
366 
367     @Override
visitSourceFile(final SourceFile obj)368     public void visitSourceFile(final SourceFile obj)
369     {
370         sourceFileCount++;
371     }
372 
373     @Override
visitStackMap(final StackMap obj)374     public void visitStackMap(final StackMap obj)
375     {
376         stackMapCount++;
377     }
378 
379     @Override
visitStackMapEntry(final StackMapEntry obj)380     public void visitStackMapEntry(final StackMapEntry obj)
381     {
382         stackMapEntryCount++;
383     }
384 
385     @Override
visitSynthetic(final Synthetic obj)386     public void visitSynthetic(final Synthetic obj)
387     {
388         syntheticCount++;
389     }
390 
391     @Override
visitUnknown(final Unknown obj)392     public void visitUnknown(final Unknown obj)
393     {
394         unknownCount++;
395     }
396 
397     /** @since 6.0 */
398     @Override
visitBootstrapMethods(final BootstrapMethods obj)399     public void visitBootstrapMethods(final BootstrapMethods obj)
400     {
401         bootstrapMethodsCount++;
402     }
403 
404     /** @since 6.0 */
405     @Override
visitMethodParameters(final MethodParameters obj)406     public void visitMethodParameters(final MethodParameters obj)
407     {
408         methodParametersCount++;
409     }
410 
411     /** @since 6.0 */
412     @Override
visitConstantInvokeDynamic(final ConstantInvokeDynamic obj)413     public void visitConstantInvokeDynamic(final ConstantInvokeDynamic obj)
414     {
415         constantInvokeDynamic++;
416     }
417 
418     /** @since 6.0 */
419     @Override
visitConstantMethodType(final ConstantMethodType obj)420     public void visitConstantMethodType(final ConstantMethodType obj) {
421         // TODO Auto-generated method stub
422     }
423 
424     /** @since 6.0 */
425     @Override
visitConstantMethodHandle(final ConstantMethodHandle constantMethodHandle)426     public void visitConstantMethodHandle(final ConstantMethodHandle constantMethodHandle) {
427         // TODO Auto-generated method stub
428     }
429 
430     /** @since 6.0 */
431     @Override
visitParameterAnnotationEntry(final ParameterAnnotationEntry parameterAnnotationEntry)432     public void visitParameterAnnotationEntry(final ParameterAnnotationEntry parameterAnnotationEntry) {
433         // TODO Auto-generated method stub
434     }
435 
436     /** @since 6.1 */
437     @Override
visitConstantPackage(final ConstantPackage constantPackage)438     public void visitConstantPackage(final ConstantPackage constantPackage) {
439         constantPackageCount++;
440     }
441 
442     /** @since 6.1 */
443     @Override
visitConstantModule(final ConstantModule constantModule)444     public void visitConstantModule(final ConstantModule constantModule) {
445         constantModuleCount++;
446     }
447 
448     /** @since 6.3 */
449     @Override
visitConstantDynamic(final ConstantDynamic constantDynamic)450     public void visitConstantDynamic(final ConstantDynamic constantDynamic) {
451         constantDynamicCount++;
452     }
453 }
454