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.generic; 23 24 /** 25 * Interface implementing the Visitor pattern programming style. 26 * I.e., a class that implements this interface can handle all types of 27 * instructions with the properly typed methods just by calling the accept() 28 * method. 29 * 30 * @version $Id: Visitor.java 1747278 2016-06-07 17:28:43Z britter $ 31 */ 32 public interface Visitor { 33 34 void visitStackInstruction( StackInstruction obj ); 35 36 37 void visitLocalVariableInstruction( LocalVariableInstruction obj ); 38 39 40 void visitBranchInstruction( BranchInstruction obj ); 41 42 43 void visitLoadClass( LoadClass obj ); 44 45 46 void visitFieldInstruction( FieldInstruction obj ); 47 48 49 void visitIfInstruction( IfInstruction obj ); 50 51 52 void visitConversionInstruction( ConversionInstruction obj ); 53 54 55 void visitPopInstruction( PopInstruction obj ); 56 57 58 void visitStoreInstruction( StoreInstruction obj ); 59 60 61 void visitTypedInstruction( TypedInstruction obj ); 62 63 64 void visitSelect( Select obj ); 65 66 67 void visitJsrInstruction( JsrInstruction obj ); 68 69 70 void visitGotoInstruction( GotoInstruction obj ); 71 72 73 void visitUnconditionalBranch( UnconditionalBranch obj ); 74 75 76 void visitPushInstruction( PushInstruction obj ); 77 78 79 void visitArithmeticInstruction( ArithmeticInstruction obj ); 80 81 82 void visitCPInstruction( CPInstruction obj ); 83 84 85 void visitInvokeInstruction( InvokeInstruction obj ); 86 87 88 void visitArrayInstruction( ArrayInstruction obj ); 89 90 91 void visitAllocationInstruction( AllocationInstruction obj ); 92 93 94 void visitReturnInstruction( ReturnInstruction obj ); 95 96 97 void visitFieldOrMethod( FieldOrMethod obj ); 98 99 100 void visitConstantPushInstruction( ConstantPushInstruction obj ); 101 102 103 void visitExceptionThrower( ExceptionThrower obj ); 104 105 106 void visitLoadInstruction( LoadInstruction obj ); 107 108 109 void visitVariableLengthInstruction( VariableLengthInstruction obj ); 110 111 112 void visitStackProducer( StackProducer obj ); 113 114 115 void visitStackConsumer( StackConsumer obj ); 116 117 118 void visitACONST_NULL( ACONST_NULL obj ); 119 120 121 void visitGETSTATIC( GETSTATIC obj ); 122 123 124 void visitIF_ICMPLT( IF_ICMPLT obj ); 125 126 127 void visitMONITOREXIT( MONITOREXIT obj ); 128 129 130 void visitIFLT( IFLT obj ); 131 132 133 void visitLSTORE( LSTORE obj ); 134 135 136 void visitPOP2( POP2 obj ); 137 138 139 void visitBASTORE( BASTORE obj ); 140 141 142 void visitISTORE( ISTORE obj ); 143 144 145 void visitCHECKCAST( CHECKCAST obj ); 146 147 148 void visitFCMPG( FCMPG obj ); 149 150 151 void visitI2F( I2F obj ); 152 153 154 void visitATHROW( ATHROW obj ); 155 156 157 void visitDCMPL( DCMPL obj ); 158 159 160 void visitARRAYLENGTH( ARRAYLENGTH obj ); 161 162 163 void visitDUP( DUP obj ); 164 165 166 void visitINVOKESTATIC( INVOKESTATIC obj ); 167 168 169 void visitLCONST( LCONST obj ); 170 171 172 void visitDREM( DREM obj ); 173 174 175 void visitIFGE( IFGE obj ); 176 177 178 void visitCALOAD( CALOAD obj ); 179 180 181 void visitLASTORE( LASTORE obj ); 182 183 184 void visitI2D( I2D obj ); 185 186 187 void visitDADD( DADD obj ); 188 189 190 void visitINVOKESPECIAL( INVOKESPECIAL obj ); 191 192 193 void visitIAND( IAND obj ); 194 195 196 void visitPUTFIELD( PUTFIELD obj ); 197 198 199 void visitILOAD( ILOAD obj ); 200 201 202 void visitDLOAD( DLOAD obj ); 203 204 205 void visitDCONST( DCONST obj ); 206 207 208 void visitNEW( NEW obj ); 209 210 211 void visitIFNULL( IFNULL obj ); 212 213 214 void visitLSUB( LSUB obj ); 215 216 217 void visitL2I( L2I obj ); 218 219 220 void visitISHR( ISHR obj ); 221 222 223 void visitTABLESWITCH( TABLESWITCH obj ); 224 225 226 void visitIINC( IINC obj ); 227 228 229 void visitDRETURN( DRETURN obj ); 230 231 232 void visitFSTORE( FSTORE obj ); 233 234 235 void visitDASTORE( DASTORE obj ); 236 237 238 void visitIALOAD( IALOAD obj ); 239 240 241 void visitDDIV( DDIV obj ); 242 243 244 void visitIF_ICMPGE( IF_ICMPGE obj ); 245 246 247 void visitLAND( LAND obj ); 248 249 250 void visitIDIV( IDIV obj ); 251 252 253 void visitLOR( LOR obj ); 254 255 256 void visitCASTORE( CASTORE obj ); 257 258 259 void visitFREM( FREM obj ); 260 261 262 void visitLDC( LDC obj ); 263 264 265 void visitBIPUSH( BIPUSH obj ); 266 267 268 void visitDSTORE( DSTORE obj ); 269 270 271 void visitF2L( F2L obj ); 272 273 274 void visitFMUL( FMUL obj ); 275 276 277 void visitLLOAD( LLOAD obj ); 278 279 280 void visitJSR( JSR obj ); 281 282 283 void visitFSUB( FSUB obj ); 284 285 286 void visitSASTORE( SASTORE obj ); 287 288 289 void visitALOAD( ALOAD obj ); 290 291 292 void visitDUP2_X2( DUP2_X2 obj ); 293 294 295 void visitRETURN( RETURN obj ); 296 297 298 void visitDALOAD( DALOAD obj ); 299 300 301 void visitSIPUSH( SIPUSH obj ); 302 303 304 void visitDSUB( DSUB obj ); 305 306 307 void visitL2F( L2F obj ); 308 309 310 void visitIF_ICMPGT( IF_ICMPGT obj ); 311 312 313 void visitF2D( F2D obj ); 314 315 316 void visitI2L( I2L obj ); 317 318 319 void visitIF_ACMPNE( IF_ACMPNE obj ); 320 321 322 void visitPOP( POP obj ); 323 324 325 void visitI2S( I2S obj ); 326 327 328 void visitIFEQ( IFEQ obj ); 329 330 331 void visitSWAP( SWAP obj ); 332 333 334 void visitIOR( IOR obj ); 335 336 337 void visitIREM( IREM obj ); 338 339 340 void visitIASTORE( IASTORE obj ); 341 342 343 void visitNEWARRAY( NEWARRAY obj ); 344 345 346 void visitINVOKEINTERFACE( INVOKEINTERFACE obj ); 347 348 349 void visitINEG( INEG obj ); 350 351 352 void visitLCMP( LCMP obj ); 353 354 355 void visitJSR_W( JSR_W obj ); 356 357 358 void visitMULTIANEWARRAY( MULTIANEWARRAY obj ); 359 360 361 void visitDUP_X2( DUP_X2 obj ); 362 363 364 void visitSALOAD( SALOAD obj ); 365 366 367 void visitIFNONNULL( IFNONNULL obj ); 368 369 370 void visitDMUL( DMUL obj ); 371 372 373 void visitIFNE( IFNE obj ); 374 375 376 void visitIF_ICMPLE( IF_ICMPLE obj ); 377 378 379 void visitLDC2_W( LDC2_W obj ); 380 381 382 void visitGETFIELD( GETFIELD obj ); 383 384 385 void visitLADD( LADD obj ); 386 387 388 void visitNOP( NOP obj ); 389 390 391 void visitFALOAD( FALOAD obj ); 392 393 394 void visitINSTANCEOF( INSTANCEOF obj ); 395 396 397 void visitIFLE( IFLE obj ); 398 399 400 void visitLXOR( LXOR obj ); 401 402 403 void visitLRETURN( LRETURN obj ); 404 405 406 void visitFCONST( FCONST obj ); 407 408 409 void visitIUSHR( IUSHR obj ); 410 411 412 void visitBALOAD( BALOAD obj ); 413 414 415 void visitDUP2( DUP2 obj ); 416 417 418 void visitIF_ACMPEQ( IF_ACMPEQ obj ); 419 420 421 void visitIMPDEP1( IMPDEP1 obj ); 422 423 424 void visitMONITORENTER( MONITORENTER obj ); 425 426 427 void visitLSHL( LSHL obj ); 428 429 430 void visitDCMPG( DCMPG obj ); 431 432 433 void visitD2L( D2L obj ); 434 435 436 void visitIMPDEP2( IMPDEP2 obj ); 437 438 439 void visitL2D( L2D obj ); 440 441 442 void visitRET( RET obj ); 443 444 445 void visitIFGT( IFGT obj ); 446 447 448 void visitIXOR( IXOR obj ); 449 450 451 void visitINVOKEVIRTUAL( INVOKEVIRTUAL obj ); 452 453 454 /** 455 * @since 6.0 456 */ 457 void visitINVOKEDYNAMIC( INVOKEDYNAMIC obj ); 458 459 460 void visitFASTORE( FASTORE obj ); 461 462 463 void visitIRETURN( IRETURN obj ); 464 465 466 void visitIF_ICMPNE( IF_ICMPNE obj ); 467 468 469 void visitFLOAD( FLOAD obj ); 470 471 472 void visitLDIV( LDIV obj ); 473 474 475 void visitPUTSTATIC( PUTSTATIC obj ); 476 477 478 void visitAALOAD( AALOAD obj ); 479 480 481 void visitD2I( D2I obj ); 482 483 484 void visitIF_ICMPEQ( IF_ICMPEQ obj ); 485 486 487 void visitAASTORE( AASTORE obj ); 488 489 490 void visitARETURN( ARETURN obj ); 491 492 493 void visitDUP2_X1( DUP2_X1 obj ); 494 495 496 void visitFNEG( FNEG obj ); 497 498 499 void visitGOTO_W( GOTO_W obj ); 500 501 502 void visitD2F( D2F obj ); 503 504 505 void visitGOTO( GOTO obj ); 506 507 508 void visitISUB( ISUB obj ); 509 510 511 void visitF2I( F2I obj ); 512 513 514 void visitDNEG( DNEG obj ); 515 516 517 void visitICONST( ICONST obj ); 518 519 520 void visitFDIV( FDIV obj ); 521 522 523 void visitI2B( I2B obj ); 524 525 526 void visitLNEG( LNEG obj ); 527 528 529 void visitLREM( LREM obj ); 530 531 532 void visitIMUL( IMUL obj ); 533 534 535 void visitIADD( IADD obj ); 536 537 538 void visitLSHR( LSHR obj ); 539 540 541 void visitLOOKUPSWITCH( LOOKUPSWITCH obj ); 542 543 544 void visitDUP_X1( DUP_X1 obj ); 545 546 547 void visitFCMPL( FCMPL obj ); 548 549 550 void visitI2C( I2C obj ); 551 552 553 void visitLMUL( LMUL obj ); 554 555 556 void visitLUSHR( LUSHR obj ); 557 558 559 void visitISHL( ISHL obj ); 560 561 562 void visitLALOAD( LALOAD obj ); 563 564 565 void visitASTORE( ASTORE obj ); 566 567 568 void visitANEWARRAY( ANEWARRAY obj ); 569 570 571 void visitFRETURN( FRETURN obj ); 572 573 574 void visitFADD( FADD obj ); 575 576 577 void visitBREAKPOINT( BREAKPOINT obj ); 578 }