1 17 package org.apache.bcel.generic; 18 19 import org.apache.bcel.Constants; 20 import org.apache.bcel.ExceptionConstants; 21 22 30 public class INVOKEVIRTUAL extends InvokeInstruction { 31 32 36 INVOKEVIRTUAL() { 37 } 38 39 40 public INVOKEVIRTUAL(int index) { 41 super(Constants.INVOKEVIRTUAL, index); 42 } 43 44 45 public Class [] getExceptions() { 46 Class [] cs = new Class [4 + ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length]; 47 System.arraycopy(ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION, 0, cs, 0, 48 ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length); 49 cs[ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length + 3] = ExceptionConstants.UNSATISFIED_LINK_ERROR; 50 cs[ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length + 2] = ExceptionConstants.ABSTRACT_METHOD_ERROR; 51 cs[ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length + 1] = ExceptionConstants.INCOMPATIBLE_CLASS_CHANGE_ERROR; 52 cs[ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length] = ExceptionConstants.NULL_POINTER_EXCEPTION; 53 return cs; 54 } 55 56 57 65 public void accept( Visitor v ) { 66 v.visitExceptionThrower(this); 67 v.visitTypedInstruction(this); 68 v.visitStackConsumer(this); 69 v.visitStackProducer(this); 70 v.visitLoadClass(this); 71 v.visitCPInstruction(this); 72 v.visitFieldOrMethod(this); 73 v.visitInvokeInstruction(this); 74 v.visitINVOKEVIRTUAL(this); 75 } 76 } 77 | Popular Tags |