1 /* 2 * reserved comment block 3 * DO NOT REMOVE OR ALTER! 4 */ 5 package com.sun.org.apache.bcel.internal.generic; 6 7 /* ==================================================================== 8 * The Apache Software License, Version 1.1 9 * 10 * Copyright (c) 2001 The Apache Software Foundation. All rights 11 * reserved. 12 * 13 * Redistribution and use in source and binary forms, with or without 14 * modification, are permitted provided that the following conditions 15 * are met: 16 * 17 * 1. Redistributions of source code must retain the above copyright 18 * notice, this list of conditions and the following disclaimer. 19 * 20 * 2. Redistributions in binary form must reproduce the above copyright 21 * notice, this list of conditions and the following disclaimer in 22 * the documentation and/or other materials provided with the 23 * distribution. 24 * 25 * 3. The end-user documentation included with the redistribution, 26 * if any, must include the following acknowledgment: 27 * "This product includes software developed by the 28 * Apache Software Foundation (http://www.apache.org/)." 29 * Alternately, this acknowledgment may appear in the software itself, 30 * if and wherever such third-party acknowledgments normally appear. 31 * 32 * 4. The names "Apache" and "Apache Software Foundation" and 33 * "Apache BCEL" must not be used to endorse or promote products 34 * derived from this software without prior written permission. For 35 * written permission, please contact apache@apache.org. 36 * 37 * 5. Products derived from this software may not be called "Apache", 38 * "Apache BCEL", nor may "Apache" appear in their name, without 39 * prior written permission of the Apache Software Foundation. 40 * 41 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 42 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 43 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 44 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR 45 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 46 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 47 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 48 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 49 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 50 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 51 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 52 * SUCH DAMAGE. 53 * ==================================================================== 54 * 55 * This software consists of voluntary contributions made by many 56 * individuals on behalf of the Apache Software Foundation. For more 57 * information on the Apache Software Foundation, please see 58 * <http://www.apache.org/>. 59 */ 60 61 /** 62 * Interface implementing the Visitor pattern programming style. 63 * I.e., a class that implements this interface can handle all types of 64 * instructions with the properly typed methods just by calling the accept() 65 * method. 66 * 67 * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> 68 */ 69 public interface Visitor { 70 public void visitStackInstruction(StackInstruction obj); 71 public void visitLocalVariableInstruction(LocalVariableInstruction obj); 72 public void visitBranchInstruction(BranchInstruction obj); 73 public void visitLoadClass(LoadClass obj); 74 public void visitFieldInstruction(FieldInstruction obj); 75 public void visitIfInstruction(IfInstruction obj); 76 public void visitConversionInstruction(ConversionInstruction obj); 77 public void visitPopInstruction(PopInstruction obj); 78 public void visitStoreInstruction(StoreInstruction obj); 79 public void visitTypedInstruction(TypedInstruction obj); 80 public void visitSelect(Select obj); 81 public void visitJsrInstruction(JsrInstruction obj); 82 public void visitGotoInstruction(GotoInstruction obj); 83 public void visitUnconditionalBranch(UnconditionalBranch obj); 84 public void visitPushInstruction(PushInstruction obj); 85 public void visitArithmeticInstruction(ArithmeticInstruction obj); 86 public void visitCPInstruction(CPInstruction obj); 87 public void visitInvokeInstruction(InvokeInstruction obj); 88 public void visitArrayInstruction(ArrayInstruction obj); 89 public void visitAllocationInstruction(AllocationInstruction obj); 90 public void visitReturnInstruction(ReturnInstruction obj); 91 public void visitFieldOrMethod(FieldOrMethod obj); 92 public void visitConstantPushInstruction(ConstantPushInstruction obj); 93 public void visitExceptionThrower(ExceptionThrower obj); 94 public void visitLoadInstruction(LoadInstruction obj); 95 public void visitVariableLengthInstruction(VariableLengthInstruction obj); 96 public void visitStackProducer(StackProducer obj); 97 public void visitStackConsumer(StackConsumer obj); 98 public void visitACONST_NULL(ACONST_NULL obj); 99 public void visitGETSTATIC(GETSTATIC obj); 100 public void visitIF_ICMPLT(IF_ICMPLT obj); 101 public void visitMONITOREXIT(MONITOREXIT obj); 102 public void visitIFLT(IFLT obj); 103 public void visitLSTORE(LSTORE obj); 104 public void visitPOP2(POP2 obj); 105 public void visitBASTORE(BASTORE obj); 106 public void visitISTORE(ISTORE obj); 107 public void visitCHECKCAST(CHECKCAST obj); 108 public void visitFCMPG(FCMPG obj); 109 public void visitI2F(I2F obj); 110 public void visitATHROW(ATHROW obj); 111 public void visitDCMPL(DCMPL obj); 112 public void visitARRAYLENGTH(ARRAYLENGTH obj); 113 public void visitDUP(DUP obj); 114 public void visitINVOKESTATIC(INVOKESTATIC obj); 115 public void visitLCONST(LCONST obj); 116 public void visitDREM(DREM obj); 117 public void visitIFGE(IFGE obj); 118 public void visitCALOAD(CALOAD obj); 119 public void visitLASTORE(LASTORE obj); 120 public void visitI2D(I2D obj); 121 public void visitDADD(DADD obj); 122 public void visitINVOKESPECIAL(INVOKESPECIAL obj); 123 public void visitIAND(IAND obj); 124 public void visitPUTFIELD(PUTFIELD obj); 125 public void visitILOAD(ILOAD obj); 126 public void visitDLOAD(DLOAD obj); 127 public void visitDCONST(DCONST obj); 128 public void visitNEW(NEW obj); 129 public void visitIFNULL(IFNULL obj); 130 public void visitLSUB(LSUB obj); 131 public void visitL2I(L2I obj); 132 public void visitISHR(ISHR obj); 133 public void visitTABLESWITCH(TABLESWITCH obj); 134 public void visitIINC(IINC obj); 135 public void visitDRETURN(DRETURN obj); 136 public void visitFSTORE(FSTORE obj); 137 public void visitDASTORE(DASTORE obj); 138 public void visitIALOAD(IALOAD obj); 139 public void visitDDIV(DDIV obj); 140 public void visitIF_ICMPGE(IF_ICMPGE obj); 141 public void visitLAND(LAND obj); 142 public void visitIDIV(IDIV obj); 143 public void visitLOR(LOR obj); 144 public void visitCASTORE(CASTORE obj); 145 public void visitFREM(FREM obj); 146 public void visitLDC(LDC obj); 147 public void visitBIPUSH(BIPUSH obj); 148 public void visitDSTORE(DSTORE obj); 149 public void visitF2L(F2L obj); 150 public void visitFMUL(FMUL obj); 151 public void visitLLOAD(LLOAD obj); 152 public void visitJSR(JSR obj); 153 public void visitFSUB(FSUB obj); 154 public void visitSASTORE(SASTORE obj); 155 public void visitALOAD(ALOAD obj); 156 public void visitDUP2_X2(DUP2_X2 obj); 157 public void visitRETURN(RETURN obj); 158 public void visitDALOAD(DALOAD obj); 159 public void visitSIPUSH(SIPUSH obj); 160 public void visitDSUB(DSUB obj); 161 public void visitL2F(L2F obj); 162 public void visitIF_ICMPGT(IF_ICMPGT obj); 163 public void visitF2D(F2D obj); 164 public void visitI2L(I2L obj); 165 public void visitIF_ACMPNE(IF_ACMPNE obj); 166 public void visitPOP(POP obj); 167 public void visitI2S(I2S obj); 168 public void visitIFEQ(IFEQ obj); 169 public void visitSWAP(SWAP obj); 170 public void visitIOR(IOR obj); 171 public void visitIREM(IREM obj); 172 public void visitIASTORE(IASTORE obj); 173 public void visitNEWARRAY(NEWARRAY obj); 174 public void visitINVOKEINTERFACE(INVOKEINTERFACE obj); 175 public void visitINEG(INEG obj); 176 public void visitLCMP(LCMP obj); 177 public void visitJSR_W(JSR_W obj); 178 public void visitMULTIANEWARRAY(MULTIANEWARRAY obj); 179 public void visitDUP_X2(DUP_X2 obj); 180 public void visitSALOAD(SALOAD obj); 181 public void visitIFNONNULL(IFNONNULL obj); 182 public void visitDMUL(DMUL obj); 183 public void visitIFNE(IFNE obj); 184 public void visitIF_ICMPLE(IF_ICMPLE obj); 185 public void visitLDC2_W(LDC2_W obj); 186 public void visitGETFIELD(GETFIELD obj); 187 public void visitLADD(LADD obj); 188 public void visitNOP(NOP obj); 189 public void visitFALOAD(FALOAD obj); 190 public void visitINSTANCEOF(INSTANCEOF obj); 191 public void visitIFLE(IFLE obj); 192 public void visitLXOR(LXOR obj); 193 public void visitLRETURN(LRETURN obj); 194 public void visitFCONST(FCONST obj); 195 public void visitIUSHR(IUSHR obj); 196 public void visitBALOAD(BALOAD obj); 197 public void visitDUP2(DUP2 obj); 198 public void visitIF_ACMPEQ(IF_ACMPEQ obj); 199 public void visitIMPDEP1(IMPDEP1 obj); 200 public void visitMONITORENTER(MONITORENTER obj); 201 public void visitLSHL(LSHL obj); 202 public void visitDCMPG(DCMPG obj); 203 public void visitD2L(D2L obj); 204 public void visitIMPDEP2(IMPDEP2 obj); 205 public void visitL2D(L2D obj); 206 public void visitRET(RET obj); 207 public void visitIFGT(IFGT obj); 208 public void visitIXOR(IXOR obj); 209 public void visitINVOKEVIRTUAL(INVOKEVIRTUAL obj); 210 public void visitFASTORE(FASTORE obj); 211 public void visitIRETURN(IRETURN obj); 212 public void visitIF_ICMPNE(IF_ICMPNE obj); 213 public void visitFLOAD(FLOAD obj); 214 public void visitLDIV(LDIV obj); 215 public void visitPUTSTATIC(PUTSTATIC obj); 216 public void visitAALOAD(AALOAD obj); 217 public void visitD2I(D2I obj); 218 public void visitIF_ICMPEQ(IF_ICMPEQ obj); 219 public void visitAASTORE(AASTORE obj); 220 public void visitARETURN(ARETURN obj); 221 public void visitDUP2_X1(DUP2_X1 obj); 222 public void visitFNEG(FNEG obj); 223 public void visitGOTO_W(GOTO_W obj); 224 public void visitD2F(D2F obj); 225 public void visitGOTO(GOTO obj); 226 public void visitISUB(ISUB obj); 227 public void visitF2I(F2I obj); 228 public void visitDNEG(DNEG obj); 229 public void visitICONST(ICONST obj); 230 public void visitFDIV(FDIV obj); 231 public void visitI2B(I2B obj); 232 public void visitLNEG(LNEG obj); 233 public void visitLREM(LREM obj); 234 public void visitIMUL(IMUL obj); 235 public void visitIADD(IADD obj); 236 public void visitLSHR(LSHR obj); 237 public void visitLOOKUPSWITCH(LOOKUPSWITCH obj); 238 public void visitDUP_X1(DUP_X1 obj); 239 public void visitFCMPL(FCMPL obj); 240 public void visitI2C(I2C obj); 241 public void visitLMUL(LMUL obj); 242 public void visitLUSHR(LUSHR obj); 243 public void visitISHL(ISHL obj); 244 public void visitLALOAD(LALOAD obj); 245 public void visitASTORE(ASTORE obj); 246 public void visitANEWARRAY(ANEWARRAY obj); 247 public void visitFRETURN(FRETURN obj); 248 public void visitFADD(FADD obj); 249 public void visitBREAKPOINT(BREAKPOINT obj); 250 }