1 /* 2 * ProGuard -- shrinking, optimization, obfuscation, and preverification 3 * of Java bytecode. 4 * 5 * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) 6 * 7 * This program is free software; you can redistribute it and/or modify it 8 * under the terms of the GNU General Public License as published by the Free 9 * Software Foundation; either version 2 of the License, or (at your option) 10 * any later version. 11 * 12 * This program is distributed in the hope that it will be useful, but WITHOUT 13 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 14 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 15 * more details. 16 * 17 * You should have received a copy of the GNU General Public License along 18 * with this program; if not, write to the Free Software Foundation, Inc., 19 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 20 */ 21 package proguard.classfile.util; 22 23 import proguard.classfile.*; 24 import proguard.classfile.attribute.*; 25 import proguard.classfile.attribute.annotation.*; 26 import proguard.classfile.attribute.annotation.target.*; 27 import proguard.classfile.attribute.preverification.*; 28 import proguard.classfile.constant.*; 29 import proguard.classfile.instruction.*; 30 31 /** 32 * This abstract utility class allows to implement various visitor interfaces 33 * with simplified methods. The provided methods delegate to other versions 34 * with fewer arguments or more general arguments. 35 * 36 * @author Eric Lafortune 37 * @noinspection AbstractClassWithoutAbstractMethods 38 */ 39 public abstract class SimplifiedVisitor 40 { 41 // Simplifications for ClassVisitor. 42 43 /** 44 * Visits any type of class member of the given class. 45 */ visitAnyClass(Clazz clazz)46 public void visitAnyClass(Clazz clazz) 47 { 48 throw new UnsupportedOperationException("Method must be overridden in ["+this.getClass().getName()+"] if ever called"); 49 } 50 51 visitProgramClass(ProgramClass programClass)52 public void visitProgramClass(ProgramClass programClass) 53 { 54 visitAnyClass(programClass); 55 } 56 57 visitLibraryClass(LibraryClass libraryClass)58 public void visitLibraryClass(LibraryClass libraryClass) 59 { 60 visitAnyClass(libraryClass); 61 } 62 63 64 // Simplifications for MemberVisitor. 65 66 /** 67 * Visits any type of class member of the given class. 68 */ visitAnyMember(Clazz clazz, Member member)69 public void visitAnyMember(Clazz clazz, Member member) 70 { 71 throw new UnsupportedOperationException("Method must be overridden in ["+this.getClass().getName()+"] if ever called"); 72 } 73 74 75 /** 76 * Visits any type of class member of the given program class. 77 */ visitProgramMember(ProgramClass programClass, ProgramMember programMember)78 public void visitProgramMember(ProgramClass programClass, ProgramMember programMember) 79 { 80 visitAnyMember(programClass, programMember); 81 } 82 83 visitProgramField(ProgramClass programClass, ProgramField programField)84 public void visitProgramField(ProgramClass programClass, ProgramField programField) 85 { 86 visitProgramMember(programClass, programField); 87 } 88 89 visitProgramMethod(ProgramClass programClass, ProgramMethod programMethod)90 public void visitProgramMethod(ProgramClass programClass, ProgramMethod programMethod) 91 { 92 visitProgramMember(programClass, programMethod); 93 } 94 95 96 /** 97 * Visits any type of class member of the given library class. 98 */ visitLibraryMember(LibraryClass libraryClass, LibraryMember libraryMember)99 public void visitLibraryMember(LibraryClass libraryClass, LibraryMember libraryMember) 100 { 101 visitAnyMember(libraryClass, libraryMember); 102 } 103 104 visitLibraryField(LibraryClass libraryClass, LibraryField libraryField)105 public void visitLibraryField(LibraryClass libraryClass, LibraryField libraryField) 106 { 107 visitLibraryMember(libraryClass, libraryField); 108 } 109 110 visitLibraryMethod(LibraryClass libraryClass, LibraryMethod libraryMethod)111 public void visitLibraryMethod(LibraryClass libraryClass, LibraryMethod libraryMethod) 112 { 113 visitLibraryMember(libraryClass, libraryMethod); 114 } 115 116 117 // Simplifications for ConstantVisitor. 118 visitAnyConstant(Clazz clazz, Constant constant)119 public void visitAnyConstant(Clazz clazz, Constant constant) 120 { 121 throw new UnsupportedOperationException("Method must be overridden in ["+this.getClass().getName()+"] if ever called"); 122 } 123 124 visitIntegerConstant(Clazz clazz, IntegerConstant integerConstant)125 public void visitIntegerConstant(Clazz clazz, IntegerConstant integerConstant) 126 { 127 visitAnyConstant(clazz, integerConstant); 128 } 129 130 visitLongConstant(Clazz clazz, LongConstant longConstant)131 public void visitLongConstant(Clazz clazz, LongConstant longConstant) 132 { 133 visitAnyConstant(clazz, longConstant); 134 } 135 136 visitFloatConstant(Clazz clazz, FloatConstant floatConstant)137 public void visitFloatConstant(Clazz clazz, FloatConstant floatConstant) 138 { 139 visitAnyConstant(clazz, floatConstant); 140 } 141 142 visitDoubleConstant(Clazz clazz, DoubleConstant doubleConstant)143 public void visitDoubleConstant(Clazz clazz, DoubleConstant doubleConstant) 144 { 145 visitAnyConstant(clazz, doubleConstant); 146 } 147 148 visitStringConstant(Clazz clazz, StringConstant stringConstant)149 public void visitStringConstant(Clazz clazz, StringConstant stringConstant) 150 { 151 visitAnyConstant(clazz, stringConstant); 152 } 153 154 visitUtf8Constant(Clazz clazz, Utf8Constant utf8Constant)155 public void visitUtf8Constant(Clazz clazz, Utf8Constant utf8Constant) 156 { 157 visitAnyConstant(clazz, utf8Constant); 158 } 159 160 visitInvokeDynamicConstant(Clazz clazz, InvokeDynamicConstant invokeDynamicConstant)161 public void visitInvokeDynamicConstant(Clazz clazz, InvokeDynamicConstant invokeDynamicConstant) 162 { 163 visitAnyConstant(clazz, invokeDynamicConstant); 164 } 165 166 visitMethodHandleConstant(Clazz clazz, MethodHandleConstant methodHandleConstant)167 public void visitMethodHandleConstant(Clazz clazz, MethodHandleConstant methodHandleConstant) 168 { 169 visitAnyConstant(clazz, methodHandleConstant); 170 } 171 172 173 /** 174 * Visits any type of RefConstant of the given class. 175 */ visitAnyRefConstant(Clazz clazz, RefConstant refConstant)176 public void visitAnyRefConstant(Clazz clazz, RefConstant refConstant) 177 { 178 visitAnyConstant(clazz, refConstant); 179 } 180 181 visitFieldrefConstant(Clazz clazz, FieldrefConstant fieldrefConstant)182 public void visitFieldrefConstant(Clazz clazz, FieldrefConstant fieldrefConstant) 183 { 184 visitAnyRefConstant(clazz, fieldrefConstant); 185 } 186 187 188 /** 189 * Visits any type of method RefConstant of the given class. 190 */ visitAnyMethodrefConstant(Clazz clazz, RefConstant refConstant)191 public void visitAnyMethodrefConstant(Clazz clazz, RefConstant refConstant) 192 { 193 visitAnyRefConstant(clazz, refConstant); 194 } 195 196 visitInterfaceMethodrefConstant(Clazz clazz, InterfaceMethodrefConstant interfaceMethodrefConstant)197 public void visitInterfaceMethodrefConstant(Clazz clazz, InterfaceMethodrefConstant interfaceMethodrefConstant) 198 { 199 visitAnyMethodrefConstant(clazz, interfaceMethodrefConstant); 200 } 201 202 visitMethodrefConstant(Clazz clazz, MethodrefConstant methodrefConstant)203 public void visitMethodrefConstant(Clazz clazz, MethodrefConstant methodrefConstant) 204 { 205 visitAnyMethodrefConstant(clazz, methodrefConstant); 206 } 207 208 visitClassConstant(Clazz clazz, ClassConstant classConstant)209 public void visitClassConstant(Clazz clazz, ClassConstant classConstant) 210 { 211 visitAnyConstant(clazz, classConstant); 212 } 213 214 visitMethodTypeConstant(Clazz clazz, MethodTypeConstant methodTypeConstant)215 public void visitMethodTypeConstant(Clazz clazz, MethodTypeConstant methodTypeConstant) 216 { 217 visitAnyConstant(clazz, methodTypeConstant); 218 } 219 220 visitNameAndTypeConstant(Clazz clazz, NameAndTypeConstant nameAndTypeConstant)221 public void visitNameAndTypeConstant(Clazz clazz, NameAndTypeConstant nameAndTypeConstant) 222 { 223 visitAnyConstant(clazz, nameAndTypeConstant); 224 } 225 226 227 // Simplifications for AttributeVisitor. 228 229 /** 230 * Visit any type of attribute. 231 */ visitAnyAttribute(Clazz clazz, Attribute attribute)232 public void visitAnyAttribute(Clazz clazz, Attribute attribute) 233 { 234 throw new UnsupportedOperationException("Method must be overridden in ["+this.getClass().getName()+"] if ever called"); 235 } 236 237 visitUnknownAttribute(Clazz clazz, UnknownAttribute unknownAttribute)238 public void visitUnknownAttribute(Clazz clazz, UnknownAttribute unknownAttribute) 239 { 240 visitAnyAttribute(clazz, unknownAttribute); 241 } 242 243 visitBootstrapMethodsAttribute(Clazz clazz, BootstrapMethodsAttribute bootstrapMethodsAttribute)244 public void visitBootstrapMethodsAttribute(Clazz clazz, BootstrapMethodsAttribute bootstrapMethodsAttribute) 245 { 246 visitAnyAttribute(clazz, bootstrapMethodsAttribute); 247 } 248 249 visitSourceFileAttribute(Clazz clazz, SourceFileAttribute sourceFileAttribute)250 public void visitSourceFileAttribute(Clazz clazz, SourceFileAttribute sourceFileAttribute) 251 { 252 visitAnyAttribute(clazz, sourceFileAttribute); 253 } 254 255 visitSourceDirAttribute(Clazz clazz, SourceDirAttribute sourceDirAttribute)256 public void visitSourceDirAttribute(Clazz clazz, SourceDirAttribute sourceDirAttribute) 257 { 258 visitAnyAttribute(clazz, sourceDirAttribute); 259 } 260 261 visitInnerClassesAttribute(Clazz clazz, InnerClassesAttribute innerClassesAttribute)262 public void visitInnerClassesAttribute(Clazz clazz, InnerClassesAttribute innerClassesAttribute) 263 { 264 visitAnyAttribute(clazz, innerClassesAttribute); 265 } 266 267 visitEnclosingMethodAttribute(Clazz clazz, EnclosingMethodAttribute enclosingMethodAttribute)268 public void visitEnclosingMethodAttribute(Clazz clazz, EnclosingMethodAttribute enclosingMethodAttribute) 269 { 270 visitAnyAttribute(clazz, enclosingMethodAttribute); 271 } 272 273 visitDeprecatedAttribute(Clazz clazz, DeprecatedAttribute deprecatedAttribute)274 public void visitDeprecatedAttribute(Clazz clazz, DeprecatedAttribute deprecatedAttribute) 275 { 276 visitAnyAttribute(clazz, deprecatedAttribute); 277 } 278 279 280 /** 281 * Visits the given DeprecatedAttribute of any type of class member. 282 */ visitDeprecatedAttribute(Clazz clazz, Member member, DeprecatedAttribute deprecatedAttribute)283 public void visitDeprecatedAttribute(Clazz clazz, Member member, DeprecatedAttribute deprecatedAttribute) 284 { 285 visitDeprecatedAttribute(clazz, deprecatedAttribute); 286 } 287 288 visitDeprecatedAttribute(Clazz clazz, Field field, DeprecatedAttribute deprecatedAttribute)289 public void visitDeprecatedAttribute(Clazz clazz, Field field, DeprecatedAttribute deprecatedAttribute) 290 { 291 visitDeprecatedAttribute(clazz, (Member)field, deprecatedAttribute); 292 } 293 294 visitDeprecatedAttribute(Clazz clazz, Method method, DeprecatedAttribute deprecatedAttribute)295 public void visitDeprecatedAttribute(Clazz clazz, Method method, DeprecatedAttribute deprecatedAttribute) 296 { 297 visitDeprecatedAttribute(clazz, (Member)method, deprecatedAttribute); 298 } 299 300 visitSyntheticAttribute(Clazz clazz, SyntheticAttribute syntheticAttribute)301 public void visitSyntheticAttribute(Clazz clazz, SyntheticAttribute syntheticAttribute) 302 { 303 visitAnyAttribute(clazz, syntheticAttribute); 304 } 305 306 307 /** 308 * Visits the given SyntheticAttribute of any type of class member. 309 */ visitSyntheticAttribute(Clazz clazz, Member member, SyntheticAttribute syntheticAttribute)310 public void visitSyntheticAttribute(Clazz clazz, Member member, SyntheticAttribute syntheticAttribute) 311 { 312 visitSyntheticAttribute(clazz, syntheticAttribute); 313 } 314 315 visitSyntheticAttribute(Clazz clazz, Field field, SyntheticAttribute syntheticAttribute)316 public void visitSyntheticAttribute(Clazz clazz, Field field, SyntheticAttribute syntheticAttribute) 317 { 318 visitSyntheticAttribute(clazz, (Member)field, syntheticAttribute); 319 } 320 321 visitSyntheticAttribute(Clazz clazz, Method method, SyntheticAttribute syntheticAttribute)322 public void visitSyntheticAttribute(Clazz clazz, Method method, SyntheticAttribute syntheticAttribute) 323 { 324 visitSyntheticAttribute(clazz, (Member)method, syntheticAttribute); 325 } 326 327 visitSignatureAttribute(Clazz clazz, SignatureAttribute signatureAttribute)328 public void visitSignatureAttribute(Clazz clazz, SignatureAttribute signatureAttribute) 329 { 330 visitAnyAttribute(clazz, signatureAttribute); 331 } 332 333 334 /** 335 * Visits the given SignatureAttribute of any type of class member. 336 */ visitSignatureAttribute(Clazz clazz, Member member, SignatureAttribute signatureAttribute)337 public void visitSignatureAttribute(Clazz clazz, Member member, SignatureAttribute signatureAttribute) 338 { 339 visitSignatureAttribute(clazz, signatureAttribute); 340 } 341 342 visitSignatureAttribute(Clazz clazz, Field field, SignatureAttribute signatureAttribute)343 public void visitSignatureAttribute(Clazz clazz, Field field, SignatureAttribute signatureAttribute) 344 { 345 visitSignatureAttribute(clazz, (Member)field, signatureAttribute); 346 } 347 348 visitSignatureAttribute(Clazz clazz, Method method, SignatureAttribute signatureAttribute)349 public void visitSignatureAttribute(Clazz clazz, Method method, SignatureAttribute signatureAttribute) 350 { 351 visitSignatureAttribute(clazz, (Member)method, signatureAttribute); 352 } 353 354 visitConstantValueAttribute(Clazz clazz, Field field, ConstantValueAttribute constantValueAttribute)355 public void visitConstantValueAttribute(Clazz clazz, Field field, ConstantValueAttribute constantValueAttribute) 356 { 357 visitAnyAttribute(clazz, constantValueAttribute); 358 } 359 360 visitMethodParametersAttribute(Clazz clazz, Method method, MethodParametersAttribute methodParametersAttribute)361 public void visitMethodParametersAttribute(Clazz clazz, Method method, MethodParametersAttribute methodParametersAttribute) 362 { 363 visitAnyAttribute(clazz, methodParametersAttribute); 364 } 365 366 visitExceptionsAttribute(Clazz clazz, Method method, ExceptionsAttribute exceptionsAttribute)367 public void visitExceptionsAttribute(Clazz clazz, Method method, ExceptionsAttribute exceptionsAttribute) 368 { 369 visitAnyAttribute(clazz, exceptionsAttribute); 370 } 371 372 visitCodeAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute)373 public void visitCodeAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute) 374 { 375 visitAnyAttribute(clazz, codeAttribute); 376 } 377 378 visitStackMapAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, StackMapAttribute stackMapAttribute)379 public void visitStackMapAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, StackMapAttribute stackMapAttribute) 380 { 381 visitAnyAttribute(clazz, stackMapAttribute); 382 } 383 384 visitStackMapTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, StackMapTableAttribute stackMapTableAttribute)385 public void visitStackMapTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, StackMapTableAttribute stackMapTableAttribute) 386 { 387 visitAnyAttribute(clazz, stackMapTableAttribute); 388 } 389 390 visitLineNumberTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LineNumberTableAttribute lineNumberTableAttribute)391 public void visitLineNumberTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LineNumberTableAttribute lineNumberTableAttribute) 392 { 393 visitAnyAttribute(clazz, lineNumberTableAttribute); 394 } 395 396 visitLocalVariableTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTableAttribute localVariableTableAttribute)397 public void visitLocalVariableTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTableAttribute localVariableTableAttribute) 398 { 399 visitAnyAttribute(clazz, localVariableTableAttribute); 400 } 401 402 visitLocalVariableTypeTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTypeTableAttribute localVariableTypeTableAttribute)403 public void visitLocalVariableTypeTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTypeTableAttribute localVariableTypeTableAttribute) 404 { 405 visitAnyAttribute(clazz, localVariableTypeTableAttribute); 406 } 407 408 409 /** 410 * Visits any type of AnnotationsAttribute of a class. 411 */ visitAnyAnnotationsAttribute(Clazz clazz, AnnotationsAttribute annotationsAttribute)412 public void visitAnyAnnotationsAttribute(Clazz clazz, AnnotationsAttribute annotationsAttribute) 413 { 414 visitAnyAttribute(clazz, annotationsAttribute); 415 } 416 417 visitRuntimeVisibleAnnotationsAttribute(Clazz clazz, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute)418 public void visitRuntimeVisibleAnnotationsAttribute(Clazz clazz, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute) 419 { 420 visitAnyAnnotationsAttribute(clazz, runtimeVisibleAnnotationsAttribute); 421 } 422 423 424 /** 425 * Visits the given RuntimeVisibleAnnotationsAttribute of any type of class member. 426 */ visitRuntimeVisibleAnnotationsAttribute(Clazz clazz, Member member, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute)427 public void visitRuntimeVisibleAnnotationsAttribute(Clazz clazz, Member member, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute) 428 { 429 visitRuntimeVisibleAnnotationsAttribute(clazz, runtimeVisibleAnnotationsAttribute); 430 } 431 432 visitRuntimeVisibleAnnotationsAttribute(Clazz clazz, Field field, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute)433 public void visitRuntimeVisibleAnnotationsAttribute(Clazz clazz, Field field, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute) 434 { 435 visitRuntimeVisibleAnnotationsAttribute(clazz, (Member)field, runtimeVisibleAnnotationsAttribute); 436 } 437 438 visitRuntimeVisibleAnnotationsAttribute(Clazz clazz, Method method, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute)439 public void visitRuntimeVisibleAnnotationsAttribute(Clazz clazz, Method method, RuntimeVisibleAnnotationsAttribute runtimeVisibleAnnotationsAttribute) 440 { 441 visitRuntimeVisibleAnnotationsAttribute(clazz, (Member)method, runtimeVisibleAnnotationsAttribute); 442 } 443 444 visitRuntimeInvisibleAnnotationsAttribute(Clazz clazz, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute)445 public void visitRuntimeInvisibleAnnotationsAttribute(Clazz clazz, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute) 446 { 447 visitAnyAnnotationsAttribute(clazz, runtimeInvisibleAnnotationsAttribute); 448 } 449 450 451 /** 452 * Visits the given RuntimeInvisibleAnnotationsAttribute of any type of class member. 453 */ visitRuntimeInvisibleAnnotationsAttribute(Clazz clazz, Member member, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute)454 public void visitRuntimeInvisibleAnnotationsAttribute(Clazz clazz, Member member, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute) 455 { 456 visitRuntimeInvisibleAnnotationsAttribute(clazz, runtimeInvisibleAnnotationsAttribute); 457 } 458 459 visitRuntimeInvisibleAnnotationsAttribute(Clazz clazz, Field field, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute)460 public void visitRuntimeInvisibleAnnotationsAttribute(Clazz clazz, Field field, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute) 461 { 462 visitRuntimeInvisibleAnnotationsAttribute(clazz, (Member)field, runtimeInvisibleAnnotationsAttribute); 463 } 464 465 visitRuntimeInvisibleAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute)466 public void visitRuntimeInvisibleAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleAnnotationsAttribute runtimeInvisibleAnnotationsAttribute) 467 { 468 visitRuntimeInvisibleAnnotationsAttribute(clazz, (Member)method, runtimeInvisibleAnnotationsAttribute); 469 } 470 471 472 /** 473 * Visits any type of ParameterAnnotationsAttribute. 474 */ visitAnyParameterAnnotationsAttribute(Clazz clazz, Method method, ParameterAnnotationsAttribute parameterAnnotationsAttribute)475 public void visitAnyParameterAnnotationsAttribute(Clazz clazz, Method method, ParameterAnnotationsAttribute parameterAnnotationsAttribute) 476 { 477 visitAnyAttribute(clazz, parameterAnnotationsAttribute); 478 } 479 480 visitRuntimeVisibleParameterAnnotationsAttribute(Clazz clazz, Method method, RuntimeVisibleParameterAnnotationsAttribute runtimeVisibleParameterAnnotationsAttribute)481 public void visitRuntimeVisibleParameterAnnotationsAttribute(Clazz clazz, Method method, RuntimeVisibleParameterAnnotationsAttribute runtimeVisibleParameterAnnotationsAttribute) 482 { 483 visitAnyParameterAnnotationsAttribute(clazz, method, runtimeVisibleParameterAnnotationsAttribute); 484 } 485 486 visitRuntimeInvisibleParameterAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleParameterAnnotationsAttribute runtimeInvisibleParameterAnnotationsAttribute)487 public void visitRuntimeInvisibleParameterAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleParameterAnnotationsAttribute runtimeInvisibleParameterAnnotationsAttribute) 488 { 489 visitAnyParameterAnnotationsAttribute(clazz, method, runtimeInvisibleParameterAnnotationsAttribute); 490 } 491 492 493 /** 494 * Visits any type of TypeAnnotationsAttribute of a class. 495 */ visitAnyTypeAnnotationsAttribute(Clazz clazz, TypeAnnotationsAttribute typeAnnotationsAttribute)496 public void visitAnyTypeAnnotationsAttribute(Clazz clazz, TypeAnnotationsAttribute typeAnnotationsAttribute) 497 { 498 visitAnyAnnotationsAttribute(clazz, typeAnnotationsAttribute); 499 } 500 501 visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)502 public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute) 503 { 504 visitAnyTypeAnnotationsAttribute(clazz, runtimeVisibleTypeAnnotationsAttribute); 505 } 506 507 508 /** 509 * Visits the given RuntimeVisibleTypeAnnotationsAttribute of any type of class member. 510 */ visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Member member, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)511 public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Member member, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute) 512 { 513 visitRuntimeVisibleTypeAnnotationsAttribute(clazz, runtimeVisibleTypeAnnotationsAttribute); 514 } 515 516 visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Field field, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)517 public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Field field, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute) 518 { 519 visitRuntimeVisibleTypeAnnotationsAttribute(clazz, (Member)field, runtimeVisibleTypeAnnotationsAttribute); 520 } 521 522 visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Method method, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)523 public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Method method, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute) 524 { 525 visitRuntimeVisibleTypeAnnotationsAttribute(clazz, (Member)method, runtimeVisibleTypeAnnotationsAttribute); 526 } 527 528 visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)529 public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute) 530 { 531 visitRuntimeVisibleTypeAnnotationsAttribute(clazz, method, runtimeVisibleTypeAnnotationsAttribute); 532 } 533 534 visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)535 public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute) 536 { 537 visitAnyTypeAnnotationsAttribute(clazz, runtimeInvisibleTypeAnnotationsAttribute); 538 } 539 540 541 /** 542 * Visits the given RuntimeInvisibleTypeAnnotationsAttribute of any type of class member. 543 */ visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Member member, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)544 public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Member member, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute) 545 { 546 visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, runtimeInvisibleTypeAnnotationsAttribute); 547 } 548 549 visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Field field, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)550 public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Field field, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute) 551 { 552 visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, (Member)field, runtimeInvisibleTypeAnnotationsAttribute); 553 } 554 555 visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)556 public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute) 557 { 558 visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, (Member)method, runtimeInvisibleTypeAnnotationsAttribute); 559 } 560 561 visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)562 public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute) 563 { 564 visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, method, runtimeInvisibleTypeAnnotationsAttribute); 565 } 566 567 visitAnnotationDefaultAttribute(Clazz clazz, Method method, AnnotationDefaultAttribute annotationDefaultAttribute)568 public void visitAnnotationDefaultAttribute(Clazz clazz, Method method, AnnotationDefaultAttribute annotationDefaultAttribute) 569 { 570 visitAnyAttribute(clazz, annotationDefaultAttribute); 571 } 572 573 574 // Simplifications for InstructionVisitor. 575 576 /** 577 * Visits any type of Instruction. 578 */ visitAnyInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, Instruction instruction)579 public void visitAnyInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, Instruction instruction) 580 { 581 throw new UnsupportedOperationException("Method must be overridden in ["+this.getClass().getName()+"] if ever called"); 582 } 583 584 visitSimpleInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, SimpleInstruction simpleInstruction)585 public void visitSimpleInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, SimpleInstruction simpleInstruction) 586 { 587 visitAnyInstruction(clazz, method, codeAttribute, offset, simpleInstruction); 588 } 589 590 visitVariableInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, VariableInstruction variableInstruction)591 public void visitVariableInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, VariableInstruction variableInstruction) 592 { 593 visitAnyInstruction(clazz, method, codeAttribute, offset, variableInstruction); 594 } 595 596 visitConstantInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, ConstantInstruction constantInstruction)597 public void visitConstantInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, ConstantInstruction constantInstruction) 598 { 599 visitAnyInstruction(clazz, method, codeAttribute, offset, constantInstruction); 600 } 601 602 visitBranchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, BranchInstruction branchInstruction)603 public void visitBranchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, BranchInstruction branchInstruction) 604 { 605 visitAnyInstruction(clazz, method, codeAttribute, offset, branchInstruction); 606 } 607 608 609 /** 610 * Visits either type of SwitchInstruction. 611 */ visitAnySwitchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, SwitchInstruction switchInstruction)612 public void visitAnySwitchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, SwitchInstruction switchInstruction) 613 { 614 visitAnyInstruction(clazz, method, codeAttribute, offset, switchInstruction); 615 } 616 617 visitTableSwitchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, TableSwitchInstruction tableSwitchInstruction)618 public void visitTableSwitchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, TableSwitchInstruction tableSwitchInstruction) 619 { 620 visitAnySwitchInstruction(clazz, method, codeAttribute, offset, tableSwitchInstruction); 621 } 622 623 visitLookUpSwitchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, LookUpSwitchInstruction lookUpSwitchInstruction)624 public void visitLookUpSwitchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, LookUpSwitchInstruction lookUpSwitchInstruction) 625 { 626 visitAnySwitchInstruction(clazz, method, codeAttribute, offset, lookUpSwitchInstruction); 627 } 628 629 630 // Simplifications for StackMapFrameVisitor. 631 632 /** 633 * Visits any type of VerificationType. 634 */ visitAnyStackMapFrame(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, StackMapFrame stackMapFrame)635 public void visitAnyStackMapFrame(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, StackMapFrame stackMapFrame) 636 { 637 throw new UnsupportedOperationException("Method must be overridden in ["+this.getClass().getName()+"] if ever called"); 638 } 639 640 visitSameZeroFrame(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, SameZeroFrame sameZeroFrame)641 public void visitSameZeroFrame(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, SameZeroFrame sameZeroFrame) 642 { 643 visitAnyStackMapFrame(clazz, method, codeAttribute, offset, sameZeroFrame); 644 } 645 646 visitSameOneFrame(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, SameOneFrame sameOneFrame)647 public void visitSameOneFrame(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, SameOneFrame sameOneFrame) 648 { 649 visitAnyStackMapFrame(clazz, method, codeAttribute, offset, sameOneFrame); 650 } 651 652 visitLessZeroFrame(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, LessZeroFrame lessZeroFrame)653 public void visitLessZeroFrame(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, LessZeroFrame lessZeroFrame) 654 { 655 visitAnyStackMapFrame(clazz, method, codeAttribute, offset, lessZeroFrame); 656 } 657 658 visitMoreZeroFrame(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, MoreZeroFrame moreZeroFrame)659 public void visitMoreZeroFrame(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, MoreZeroFrame moreZeroFrame) 660 { 661 visitAnyStackMapFrame(clazz, method, codeAttribute, offset, moreZeroFrame); 662 } 663 664 visitFullFrame(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, FullFrame fullFrame)665 public void visitFullFrame(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, FullFrame fullFrame) 666 { 667 visitAnyStackMapFrame(clazz, method, codeAttribute, offset, fullFrame); 668 } 669 670 671 // Simplifications for VerificationTypeVisitor. 672 673 /** 674 * Visits any type of VerificationType. 675 */ visitAnyVerificationType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, VerificationType verificationType)676 public void visitAnyVerificationType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, VerificationType verificationType) 677 { 678 throw new UnsupportedOperationException("Method must be overridden in ["+this.getClass().getName()+"] if ever called"); 679 } 680 681 visitIntegerType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, IntegerType integerType)682 public void visitIntegerType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, IntegerType integerType) 683 { 684 visitAnyVerificationType(clazz, method, codeAttribute, offset, integerType); 685 } 686 687 visitFloatType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, FloatType floatType)688 public void visitFloatType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, FloatType floatType) 689 { 690 visitAnyVerificationType(clazz, method, codeAttribute, offset, floatType); 691 } 692 693 visitLongType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, LongType longType)694 public void visitLongType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, LongType longType) 695 { 696 visitAnyVerificationType(clazz, method, codeAttribute, offset, longType); 697 } 698 699 visitDoubleType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, DoubleType doubleType)700 public void visitDoubleType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, DoubleType doubleType) 701 { 702 visitAnyVerificationType(clazz, method, codeAttribute, offset, doubleType); 703 } 704 705 visitTopType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, TopType topType)706 public void visitTopType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, TopType topType) 707 { 708 visitAnyVerificationType(clazz, method, codeAttribute, offset, topType); 709 } 710 711 visitObjectType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, ObjectType objectType)712 public void visitObjectType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, ObjectType objectType) 713 { 714 visitAnyVerificationType(clazz, method, codeAttribute, offset, objectType); 715 } 716 717 visitNullType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, NullType nullType)718 public void visitNullType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, NullType nullType) 719 { 720 visitAnyVerificationType(clazz, method, codeAttribute, offset, nullType); 721 } 722 723 visitUninitializedType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, UninitializedType uninitializedType)724 public void visitUninitializedType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, UninitializedType uninitializedType) 725 { 726 visitAnyVerificationType(clazz, method, codeAttribute, offset, uninitializedType); 727 } 728 729 visitUninitializedThisType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, UninitializedThisType uninitializedThisType)730 public void visitUninitializedThisType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, UninitializedThisType uninitializedThisType) 731 { 732 visitAnyVerificationType(clazz, method, codeAttribute, offset, uninitializedThisType); 733 } 734 735 visitStackIntegerType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, IntegerType integerType)736 public void visitStackIntegerType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, IntegerType integerType) 737 { 738 visitIntegerType(clazz, method, codeAttribute, offset, integerType); 739 } 740 741 visitStackFloatType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, FloatType floatType)742 public void visitStackFloatType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, FloatType floatType) 743 { 744 visitFloatType(clazz, method, codeAttribute, offset, floatType); 745 } 746 747 visitStackLongType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, LongType longType)748 public void visitStackLongType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, LongType longType) 749 { 750 visitLongType(clazz, method, codeAttribute, offset, longType); 751 } 752 753 visitStackDoubleType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, DoubleType doubleType)754 public void visitStackDoubleType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, DoubleType doubleType) 755 { 756 visitDoubleType(clazz, method, codeAttribute, offset, doubleType); 757 } 758 759 visitStackTopType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, TopType topType)760 public void visitStackTopType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, TopType topType) 761 { 762 visitTopType(clazz, method, codeAttribute, offset, topType); 763 } 764 765 visitStackObjectType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, ObjectType objectType)766 public void visitStackObjectType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, ObjectType objectType) 767 { 768 visitObjectType(clazz, method, codeAttribute, offset, objectType); 769 } 770 771 visitStackNullType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, NullType nullType)772 public void visitStackNullType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, NullType nullType) 773 { 774 visitNullType(clazz, method, codeAttribute, offset, nullType); 775 } 776 777 visitStackUninitializedType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, UninitializedType uninitializedType)778 public void visitStackUninitializedType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, UninitializedType uninitializedType) 779 { 780 visitUninitializedType(clazz, method, codeAttribute, offset, uninitializedType); 781 } 782 783 visitStackUninitializedThisType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, UninitializedThisType uninitializedThisType)784 public void visitStackUninitializedThisType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, UninitializedThisType uninitializedThisType) 785 { 786 visitUninitializedThisType(clazz, method, codeAttribute, offset, uninitializedThisType); 787 } 788 789 790 visitVariablesIntegerType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, IntegerType integerType)791 public void visitVariablesIntegerType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, IntegerType integerType) 792 { 793 visitIntegerType(clazz, method, codeAttribute, offset, integerType); 794 } 795 796 visitVariablesFloatType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, FloatType floatType)797 public void visitVariablesFloatType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, FloatType floatType) 798 { 799 visitFloatType(clazz, method, codeAttribute, offset, floatType); 800 } 801 802 visitVariablesLongType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, LongType longType)803 public void visitVariablesLongType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, LongType longType) 804 { 805 visitLongType(clazz, method, codeAttribute, offset, longType); 806 } 807 808 visitVariablesDoubleType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, DoubleType doubleType)809 public void visitVariablesDoubleType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, DoubleType doubleType) 810 { 811 visitDoubleType(clazz, method, codeAttribute, offset, doubleType); 812 } 813 814 visitVariablesTopType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, TopType topType)815 public void visitVariablesTopType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, TopType topType) 816 { 817 visitTopType(clazz, method, codeAttribute, offset, topType); 818 } 819 820 visitVariablesObjectType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, ObjectType objectType)821 public void visitVariablesObjectType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, ObjectType objectType) 822 { 823 visitObjectType(clazz, method, codeAttribute, offset, objectType); 824 } 825 826 visitVariablesNullType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, NullType nullType)827 public void visitVariablesNullType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, NullType nullType) 828 { 829 visitNullType(clazz, method, codeAttribute, offset, nullType); 830 } 831 832 visitVariablesUninitializedType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, UninitializedType uninitializedType)833 public void visitVariablesUninitializedType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, UninitializedType uninitializedType) 834 { 835 visitUninitializedType(clazz, method, codeAttribute, offset, uninitializedType); 836 } 837 838 visitVariablesUninitializedThisType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, UninitializedThisType uninitializedThisType)839 public void visitVariablesUninitializedThisType(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, int index, UninitializedThisType uninitializedThisType) 840 { 841 visitUninitializedThisType(clazz, method, codeAttribute, offset, uninitializedThisType); 842 } 843 844 845 // Simplifications for AnnotationVisitor. 846 visitAnnotation(Clazz clazz, Annotation annotation)847 public void visitAnnotation(Clazz clazz, Annotation annotation) 848 { 849 throw new UnsupportedOperationException("Method must be overridden in ["+this.getClass().getName()+"] if ever called"); 850 } 851 852 853 /** 854 * Visits the given Annotation of any type of class member. 855 */ visitAnnotation(Clazz clazz, Member member, Annotation annotation)856 public void visitAnnotation(Clazz clazz, Member member, Annotation annotation) 857 { 858 visitAnnotation(clazz, annotation); 859 } 860 861 visitAnnotation(Clazz clazz, Field field, Annotation annotation)862 public void visitAnnotation(Clazz clazz, Field field, Annotation annotation) 863 { 864 visitAnnotation(clazz, (Member)field, annotation); 865 } 866 867 visitAnnotation(Clazz clazz, Method method, Annotation annotation)868 public void visitAnnotation(Clazz clazz, Method method, Annotation annotation) 869 { 870 visitAnnotation(clazz, (Member)method, annotation); 871 } 872 873 visitAnnotation(Clazz clazz, Method method, int parameterIndex, Annotation annotation)874 public void visitAnnotation(Clazz clazz, Method method, int parameterIndex, Annotation annotation) 875 { 876 visitAnnotation(clazz, method, annotation); 877 } 878 879 visitAnnotation(Clazz clazz, Method method, CodeAttribute codeAttribute, Annotation annotation)880 public void visitAnnotation(Clazz clazz, Method method, CodeAttribute codeAttribute, Annotation annotation) 881 { 882 visitAnnotation(clazz, method, annotation); 883 } 884 885 886 // Simplifications for TypeAnnotationVisitor. 887 visitTypeAnnotation(Clazz clazz, TypeAnnotation typeAnnotation)888 public void visitTypeAnnotation(Clazz clazz, TypeAnnotation typeAnnotation) 889 { 890 throw new UnsupportedOperationException("Method must be overridden in ["+this.getClass().getName()+"] if ever called"); 891 } 892 893 894 /** 895 * Visits the given TypeAnnotation of any type of class member. 896 */ visitTypeAnnotation(Clazz clazz, Member member, TypeAnnotation typeAnnotation)897 public void visitTypeAnnotation(Clazz clazz, Member member, TypeAnnotation typeAnnotation) 898 { 899 visitTypeAnnotation(clazz, typeAnnotation); 900 } 901 902 visitTypeAnnotation(Clazz clazz, Field field, TypeAnnotation typeAnnotation)903 public void visitTypeAnnotation(Clazz clazz, Field field, TypeAnnotation typeAnnotation) 904 { 905 visitTypeAnnotation(clazz, (Member)field, typeAnnotation); 906 } 907 908 visitTypeAnnotation(Clazz clazz, Method method, TypeAnnotation typeAnnotation)909 public void visitTypeAnnotation(Clazz clazz, Method method, TypeAnnotation typeAnnotation) 910 { 911 visitTypeAnnotation(clazz, (Member)method, typeAnnotation); 912 } 913 914 visitTypeAnnotation(Clazz clazz, Method method, int parameterIndex, TypeAnnotation typeAnnotation)915 public void visitTypeAnnotation(Clazz clazz, Method method, int parameterIndex, TypeAnnotation typeAnnotation) 916 { 917 visitTypeAnnotation(clazz, method, typeAnnotation); 918 } 919 920 visitTypeAnnotation(Clazz clazz, Method method, CodeAttribute codeAttribute, TypeAnnotation typeAnnotation)921 public void visitTypeAnnotation(Clazz clazz, Method method, CodeAttribute codeAttribute, TypeAnnotation typeAnnotation) 922 { 923 visitTypeAnnotation(clazz, method, typeAnnotation); 924 } 925 926 927 // Simplifications for TargetInfoVisitor. 928 929 /** 930 * Visits any type of TargetInfo. 931 */ visitAnyTargetInfo(Clazz clazz, TypeAnnotation typeAnnotation, TargetInfo targetInfo)932 public void visitAnyTargetInfo(Clazz clazz, TypeAnnotation typeAnnotation, TargetInfo targetInfo) 933 { 934 throw new UnsupportedOperationException("Method must be overridden in ["+this.getClass().getName()+"] if ever called"); 935 } 936 937 visitTypeParameterTargetInfo(Clazz clazz, TypeAnnotation typeAnnotation, TypeParameterTargetInfo typeParameterTargetInfo)938 public void visitTypeParameterTargetInfo(Clazz clazz, TypeAnnotation typeAnnotation, TypeParameterTargetInfo typeParameterTargetInfo) 939 { 940 visitAnyTargetInfo(clazz, typeAnnotation, typeParameterTargetInfo); 941 } 942 943 visitTypeParameterTargetInfo(Clazz clazz, Method method, TypeAnnotation typeAnnotation, TypeParameterTargetInfo typeParameterTargetInfo)944 public void visitTypeParameterTargetInfo(Clazz clazz, Method method, TypeAnnotation typeAnnotation, TypeParameterTargetInfo typeParameterTargetInfo) 945 { 946 visitTypeParameterTargetInfo(clazz, typeAnnotation, typeParameterTargetInfo); 947 } 948 949 visitSuperTypeTargetInfo(Clazz clazz, TypeAnnotation typeAnnotation, SuperTypeTargetInfo superTypeTargetInfo)950 public void visitSuperTypeTargetInfo(Clazz clazz, TypeAnnotation typeAnnotation, SuperTypeTargetInfo superTypeTargetInfo) 951 { 952 visitAnyTargetInfo(clazz, typeAnnotation, superTypeTargetInfo); 953 } 954 955 visitTypeParameterBoundTargetInfo(Clazz clazz, TypeAnnotation typeAnnotation, TypeParameterBoundTargetInfo typeParameterBoundTargetInfo)956 public void visitTypeParameterBoundTargetInfo(Clazz clazz, TypeAnnotation typeAnnotation, TypeParameterBoundTargetInfo typeParameterBoundTargetInfo) 957 { 958 visitAnyTargetInfo(clazz, typeAnnotation, typeParameterBoundTargetInfo); 959 } 960 961 962 /** 963 * Visits the given TypeParameterBoundTargetInfo of any type of class member. 964 */ visitTypeParameterBoundTargetInfo(Clazz clazz, Member member, TypeAnnotation typeAnnotation, TypeParameterBoundTargetInfo typeParameterBoundTargetInfo)965 public void visitTypeParameterBoundTargetInfo(Clazz clazz, Member member, TypeAnnotation typeAnnotation, TypeParameterBoundTargetInfo typeParameterBoundTargetInfo) 966 { 967 visitTypeParameterBoundTargetInfo(clazz, typeAnnotation, typeParameterBoundTargetInfo); 968 } 969 970 visitTypeParameterBoundTargetInfo(Clazz clazz, Field field, TypeAnnotation typeAnnotation, TypeParameterBoundTargetInfo typeParameterBoundTargetInfo)971 public void visitTypeParameterBoundTargetInfo(Clazz clazz, Field field, TypeAnnotation typeAnnotation, TypeParameterBoundTargetInfo typeParameterBoundTargetInfo) 972 { 973 visitTypeParameterBoundTargetInfo(clazz, (Member)field, typeAnnotation, typeParameterBoundTargetInfo); 974 } 975 976 visitTypeParameterBoundTargetInfo(Clazz clazz, Method method, TypeAnnotation typeAnnotation, TypeParameterBoundTargetInfo typeParameterBoundTargetInfo)977 public void visitTypeParameterBoundTargetInfo(Clazz clazz, Method method, TypeAnnotation typeAnnotation, TypeParameterBoundTargetInfo typeParameterBoundTargetInfo) 978 { 979 visitTypeParameterBoundTargetInfo(clazz, (Member)method, typeAnnotation, typeParameterBoundTargetInfo); 980 } 981 982 983 /** 984 * Visits the given EmptyTargetInfo of any type of class member. 985 */ visitEmptyTargetInfo(Clazz clazz, Member member, TypeAnnotation typeAnnotation, EmptyTargetInfo emptyTargetInfo)986 public void visitEmptyTargetInfo(Clazz clazz, Member member, TypeAnnotation typeAnnotation, EmptyTargetInfo emptyTargetInfo) 987 { 988 visitAnyTargetInfo(clazz, typeAnnotation, emptyTargetInfo); 989 } 990 991 visitEmptyTargetInfo(Clazz clazz, Field field, TypeAnnotation typeAnnotation, EmptyTargetInfo emptyTargetInfo)992 public void visitEmptyTargetInfo(Clazz clazz, Field field, TypeAnnotation typeAnnotation, EmptyTargetInfo emptyTargetInfo) 993 { 994 visitEmptyTargetInfo(clazz, (Member)field, typeAnnotation, emptyTargetInfo); 995 } 996 997 visitEmptyTargetInfo(Clazz clazz, Method method, TypeAnnotation typeAnnotation, EmptyTargetInfo emptyTargetInfo)998 public void visitEmptyTargetInfo(Clazz clazz, Method method, TypeAnnotation typeAnnotation, EmptyTargetInfo emptyTargetInfo) 999 { 1000 visitEmptyTargetInfo(clazz, (Member)method, typeAnnotation, emptyTargetInfo); 1001 } 1002 1003 visitFormalParameterTargetInfo(Clazz clazz, Method method, TypeAnnotation typeAnnotation, FormalParameterTargetInfo formalParameterTargetInfo)1004 public void visitFormalParameterTargetInfo(Clazz clazz, Method method, TypeAnnotation typeAnnotation, FormalParameterTargetInfo formalParameterTargetInfo) 1005 { 1006 visitAnyTargetInfo(clazz, typeAnnotation, formalParameterTargetInfo); 1007 } 1008 1009 visitThrowsTargetInfo(Clazz clazz, Method method, TypeAnnotation typeAnnotation, ThrowsTargetInfo throwsTargetInfo)1010 public void visitThrowsTargetInfo(Clazz clazz, Method method, TypeAnnotation typeAnnotation, ThrowsTargetInfo throwsTargetInfo) 1011 { 1012 visitAnyTargetInfo(clazz, typeAnnotation, throwsTargetInfo); 1013 } 1014 1015 visitLocalVariableTargetInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, TypeAnnotation typeAnnotation, LocalVariableTargetInfo localVariableTargetInfo)1016 public void visitLocalVariableTargetInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, TypeAnnotation typeAnnotation, LocalVariableTargetInfo localVariableTargetInfo) 1017 { 1018 visitAnyTargetInfo(clazz, typeAnnotation, localVariableTargetInfo); 1019 } 1020 1021 visitCatchTargetInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, TypeAnnotation typeAnnotation, CatchTargetInfo catchTargetInfo)1022 public void visitCatchTargetInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, TypeAnnotation typeAnnotation, CatchTargetInfo catchTargetInfo) 1023 { 1024 visitAnyTargetInfo(clazz, typeAnnotation, catchTargetInfo); 1025 } 1026 1027 visitOffsetTargetInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, TypeAnnotation typeAnnotation, OffsetTargetInfo offsetTargetInfo)1028 public void visitOffsetTargetInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, TypeAnnotation typeAnnotation, OffsetTargetInfo offsetTargetInfo) 1029 { 1030 visitAnyTargetInfo(clazz, typeAnnotation, offsetTargetInfo); 1031 } 1032 1033 visitTypeArgumentTargetInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, TypeAnnotation typeAnnotation, TypeArgumentTargetInfo typeArgumentTargetInfo)1034 public void visitTypeArgumentTargetInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, TypeAnnotation typeAnnotation, TypeArgumentTargetInfo typeArgumentTargetInfo) 1035 { 1036 visitAnyTargetInfo(clazz, typeAnnotation, typeArgumentTargetInfo); 1037 } 1038 1039 1040 // Simplifications for TypePathInfoVisitor. 1041 visitTypePathInfo(Clazz clazz, TypeAnnotation typeAnnotation, TypePathInfo typePathInfo)1042 public void visitTypePathInfo(Clazz clazz, TypeAnnotation typeAnnotation, TypePathInfo typePathInfo) 1043 { 1044 throw new UnsupportedOperationException("Method must be overridden in ["+this.getClass().getName()+"] if ever called"); 1045 } 1046 1047 1048 /** 1049 * Visits the given TypePathInfo of any type of class member. 1050 */ visitTypePathInfo(Clazz clazz, Member member, TypeAnnotation typeAnnotation, TypePathInfo typePathInfo)1051 public void visitTypePathInfo(Clazz clazz, Member member, TypeAnnotation typeAnnotation, TypePathInfo typePathInfo) 1052 { 1053 visitTypePathInfo(clazz, typeAnnotation, typePathInfo); 1054 } 1055 1056 visitTypePathInfo(Clazz clazz, Field field, TypeAnnotation typeAnnotation, TypePathInfo typePathInfo)1057 public void visitTypePathInfo(Clazz clazz, Field field, TypeAnnotation typeAnnotation, TypePathInfo typePathInfo) 1058 { 1059 visitTypePathInfo(clazz, (Member)field, typeAnnotation, typePathInfo); 1060 } 1061 1062 visitTypePathInfo(Clazz clazz, Method method, TypeAnnotation typeAnnotation, TypePathInfo typePathInfo)1063 public void visitTypePathInfo(Clazz clazz, Method method, TypeAnnotation typeAnnotation, TypePathInfo typePathInfo) 1064 { 1065 visitTypePathInfo(clazz, (Member)method, typeAnnotation, typePathInfo); 1066 } 1067 1068 visitTypePathInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, TypeAnnotation typeAnnotation, TypePathInfo typePathInfo)1069 public void visitTypePathInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, TypeAnnotation typeAnnotation, TypePathInfo typePathInfo) 1070 { 1071 visitTypePathInfo(clazz, method, typeAnnotation, typePathInfo); 1072 } 1073 1074 1075 // Simplifications for ElementValueVisitor. 1076 1077 /** 1078 * Visits any type of ElementValue. 1079 */ visitAnyElementValue(Clazz clazz, Annotation annotation, ElementValue elementValue)1080 public void visitAnyElementValue(Clazz clazz, Annotation annotation, ElementValue elementValue) 1081 { 1082 throw new UnsupportedOperationException("Method must be overridden in ["+this.getClass().getName()+"] if ever called"); 1083 } 1084 1085 visitConstantElementValue(Clazz clazz, Annotation annotation, ConstantElementValue constantElementValue)1086 public void visitConstantElementValue(Clazz clazz, Annotation annotation, ConstantElementValue constantElementValue) 1087 { 1088 visitAnyElementValue(clazz, annotation, constantElementValue); 1089 } 1090 1091 visitEnumConstantElementValue(Clazz clazz, Annotation annotation, EnumConstantElementValue enumConstantElementValue)1092 public void visitEnumConstantElementValue(Clazz clazz, Annotation annotation, EnumConstantElementValue enumConstantElementValue) 1093 { 1094 visitAnyElementValue(clazz, annotation, enumConstantElementValue); 1095 } 1096 1097 visitClassElementValue(Clazz clazz, Annotation annotation, ClassElementValue classElementValue)1098 public void visitClassElementValue(Clazz clazz, Annotation annotation, ClassElementValue classElementValue) 1099 { 1100 visitAnyElementValue(clazz, annotation, classElementValue); 1101 } 1102 1103 visitAnnotationElementValue(Clazz clazz, Annotation annotation, AnnotationElementValue annotationElementValue)1104 public void visitAnnotationElementValue(Clazz clazz, Annotation annotation, AnnotationElementValue annotationElementValue) 1105 { 1106 visitAnyElementValue(clazz, annotation, annotationElementValue); 1107 } 1108 1109 visitArrayElementValue(Clazz clazz, Annotation annotation, ArrayElementValue arrayElementValue)1110 public void visitArrayElementValue(Clazz clazz, Annotation annotation, ArrayElementValue arrayElementValue) 1111 { 1112 visitAnyElementValue(clazz, annotation, arrayElementValue); 1113 } 1114 } 1115