1 /*
2  * reserved comment block
3  * DO NOT REMOVE OR ALTER!
4  */
5 /*
6  * Licensed to the Apache Software Foundation (ASF) under one or more
7  * contributor license agreements.  See the NOTICE file distributed with
8  * this work for additional information regarding copyright ownership.
9  * The ASF licenses this file to You under the Apache License, Version 2.0
10  * (the "License"); you may not use this file except in compliance with
11  * the License.  You may obtain a copy of the License at
12  *
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  */
21 
22 package com.sun.org.apache.bcel.internal.classfile;
23 
24 /**
25  * Interface to make use of the Visitor pattern programming style. I.e. a class
26  * that implements this interface can traverse the contents of a Java class just
27  * by calling the `accept' method which all classes have.
28  *
29  */
30 public interface Visitor
31 {
visitCode(Code obj)32     void visitCode(Code obj);
33 
visitCodeException(CodeException obj)34     void visitCodeException(CodeException obj);
35 
visitConstantClass(ConstantClass obj)36     void visitConstantClass(ConstantClass obj);
37 
visitConstantDouble(ConstantDouble obj)38     void visitConstantDouble(ConstantDouble obj);
39 
visitConstantFieldref(ConstantFieldref obj)40     void visitConstantFieldref(ConstantFieldref obj);
41 
visitConstantFloat(ConstantFloat obj)42     void visitConstantFloat(ConstantFloat obj);
43 
visitConstantInteger(ConstantInteger obj)44     void visitConstantInteger(ConstantInteger obj);
45 
visitConstantInterfaceMethodref(ConstantInterfaceMethodref obj)46     void visitConstantInterfaceMethodref(ConstantInterfaceMethodref obj);
47 
visitConstantInvokeDynamic(ConstantInvokeDynamic obj)48     void visitConstantInvokeDynamic(ConstantInvokeDynamic obj);
49 
visitConstantLong(ConstantLong obj)50     void visitConstantLong(ConstantLong obj);
51 
visitConstantMethodref(ConstantMethodref obj)52     void visitConstantMethodref(ConstantMethodref obj);
53 
visitConstantNameAndType(ConstantNameAndType obj)54     void visitConstantNameAndType(ConstantNameAndType obj);
55 
visitConstantPool(ConstantPool obj)56     void visitConstantPool(ConstantPool obj);
57 
visitConstantString(ConstantString obj)58     void visitConstantString(ConstantString obj);
59 
visitConstantUtf8(ConstantUtf8 obj)60     void visitConstantUtf8(ConstantUtf8 obj);
61 
visitConstantValue(ConstantValue obj)62     void visitConstantValue(ConstantValue obj);
63 
visitDeprecated(Deprecated obj)64     void visitDeprecated(Deprecated obj);
65 
visitExceptionTable(ExceptionTable obj)66     void visitExceptionTable(ExceptionTable obj);
67 
visitField(Field obj)68     void visitField(Field obj);
69 
visitInnerClass(InnerClass obj)70     void visitInnerClass(InnerClass obj);
71 
visitInnerClasses(InnerClasses obj)72     void visitInnerClasses(InnerClasses obj);
73 
visitJavaClass(JavaClass obj)74     void visitJavaClass(JavaClass obj);
75 
visitLineNumber(LineNumber obj)76     void visitLineNumber(LineNumber obj);
77 
visitLineNumberTable(LineNumberTable obj)78     void visitLineNumberTable(LineNumberTable obj);
79 
visitLocalVariable(LocalVariable obj)80     void visitLocalVariable(LocalVariable obj);
81 
visitLocalVariableTable(LocalVariableTable obj)82     void visitLocalVariableTable(LocalVariableTable obj);
83 
visitMethod(Method obj)84     void visitMethod(Method obj);
85 
visitSignature(Signature obj)86     void visitSignature(Signature obj);
87 
visitSourceFile(SourceFile obj)88     void visitSourceFile(SourceFile obj);
89 
visitSynthetic(Synthetic obj)90     void visitSynthetic(Synthetic obj);
91 
visitUnknown(Unknown obj)92     void visitUnknown(Unknown obj);
93 
visitStackMap(StackMap obj)94     void visitStackMap(StackMap obj);
95 
visitStackMapEntry(StackMapEntry obj)96     void visitStackMapEntry(StackMapEntry obj);
97 
98     /**
99      * @since 6.0
100      */
visitAnnotation(Annotations obj)101     void visitAnnotation(Annotations obj);
102 
103     /**
104      * @since 6.0
105      */
visitParameterAnnotation(ParameterAnnotations obj)106     void visitParameterAnnotation(ParameterAnnotations obj);
107 
108     /**
109      * @since 6.0
110      */
visitAnnotationEntry(AnnotationEntry obj)111     void visitAnnotationEntry(AnnotationEntry obj);
112 
113     /**
114      * @since 6.0
115      */
visitAnnotationDefault(AnnotationDefault obj)116     void visitAnnotationDefault(AnnotationDefault obj);
117 
118     /**
119      * @since 6.0
120      */
visitLocalVariableTypeTable(LocalVariableTypeTable obj)121     void visitLocalVariableTypeTable(LocalVariableTypeTable obj);
122 
123     /**
124      * @since 6.0
125      */
visitEnclosingMethod(EnclosingMethod obj)126     void visitEnclosingMethod(EnclosingMethod obj);
127 
128     /**
129      * @since 6.0
130      */
visitBootstrapMethods(BootstrapMethods obj)131     void visitBootstrapMethods(BootstrapMethods obj);
132 
133     /**
134      * @since 6.0
135      */
visitMethodParameters(MethodParameters obj)136     void visitMethodParameters(MethodParameters obj);
137 
138     /**
139      * @since 6.4.0
140      */
visitMethodParameter(final MethodParameter obj)141     default void visitMethodParameter(final MethodParameter obj) {
142         // empty
143     }
144 
145     /**
146      * @since 6.0
147      */
visitConstantMethodType(ConstantMethodType obj)148     void visitConstantMethodType(ConstantMethodType obj);
149 
150     /**
151      * @since 6.0
152      */
visitConstantMethodHandle(ConstantMethodHandle obj)153     void visitConstantMethodHandle(ConstantMethodHandle obj);
154 
155     /**
156      * @since 6.0
157      */
visitParameterAnnotationEntry(ParameterAnnotationEntry obj)158     void visitParameterAnnotationEntry(ParameterAnnotationEntry obj);
159 
160     /**
161      * @since 6.1
162      */
visitConstantPackage(ConstantPackage constantPackage)163     void visitConstantPackage(ConstantPackage constantPackage);
164 
165     /**
166      * @since 6.1
167      */
visitConstantModule(ConstantModule constantModule)168     void visitConstantModule(ConstantModule constantModule);
169 
170     /**
171      * @since 6.3
172      */
visitConstantDynamic(final ConstantDynamic constantDynamic)173     default void visitConstantDynamic(final ConstantDynamic constantDynamic) {
174         // empty
175     }
176 
177     /**
178      * @since 6.4.0
179      */
visitModule(final Module constantModule)180     default void visitModule(final Module constantModule) {
181         // empty
182     }
183 
184     /**
185      * @since 6.4.0
186      */
visitModuleRequires(final ModuleRequires constantModule)187     default void visitModuleRequires(final ModuleRequires constantModule) {
188         // empty
189     }
190 
191     /**
192      * @since 6.4.0
193      */
visitModuleExports(final ModuleExports constantModule)194     default void visitModuleExports(final ModuleExports constantModule) {
195         // empty
196     }
197 
198     /**
199      * @since 6.4.0
200      */
visitModuleOpens(final ModuleOpens constantModule)201     default void visitModuleOpens(final ModuleOpens constantModule) {
202         // empty
203     }
204 
205     /**
206      * @since 6.4.0
207      */
visitModuleProvides(final ModuleProvides constantModule)208     default void visitModuleProvides(final ModuleProvides constantModule) {
209         // empty
210     }
211 
212     /**
213      * @since 6.4.0
214      */
visitModulePackages(final ModulePackages constantModule)215     default void visitModulePackages(final ModulePackages constantModule) {
216         // empty
217     }
218 
219     /**
220      * @since 6.4.0
221      */
visitModuleMainClass(final ModuleMainClass obj)222     default void visitModuleMainClass(final ModuleMainClass obj) {
223         // empty
224     }
225 
226     /**
227      * @since 6.4.0
228      */
visitNestHost(final NestHost obj)229     default void visitNestHost(final NestHost obj) {
230         // empty
231     }
232 
233     /**
234      * @since 6.4.0
235      */
visitNestMembers(final NestMembers obj)236     default void visitNestMembers(final NestMembers obj) {
237         // empty
238     }
239 }
240