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