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