Package org.apache.xbean.asm

Examples of org.apache.xbean.asm.MethodVisitor.visitVarInsn()


   
    // invoke getMethod() with the method name and the array of types   
    mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Class", "getDeclaredMethod", "(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;");
 
    // store the returned method for later
    mv.visitVarInsn(ASTORE, length);
   
    // the following code generates bytecode equivalent to:
    // return ((<returntype>) invocationHandler.invoke(this, method, new Object[] { <function arguments }))[.<primitive>Value()];
   
    Label l4 = new Label();
View Full Code Here


    // the following code generates bytecode equivalent to:
    // return ((<returntype>) invocationHandler.invoke(this, method, new Object[] { <function arguments }))[.<primitive>Value()];
   
    Label l4 = new Label();
    mv.visitLabel(l4);
    mv.visitVarInsn(ALOAD, 0);
   
    // get the invocationHandler field from this class
    mv.visitFieldInsn(GETFIELD, proxyName, handlerName, "Ljava/lang/reflect/InvocationHandler;");
   
    // we want to pass "this" in as the first parameter
View Full Code Here

   
    // get the invocationHandler field from this class
    mv.visitFieldInsn(GETFIELD, proxyName, handlerName, "Ljava/lang/reflect/InvocationHandler;");
   
    // we want to pass "this" in as the first parameter
    mv.visitVarInsn(ALOAD, 0);
   
    // and the method we fetched earlier
    mv.visitVarInsn(ALOAD, length);
   
    // need to construct the array of objects passed in
View Full Code Here

   
    // we want to pass "this" in as the first parameter
    mv.visitVarInsn(ALOAD, 0);
   
    // and the method we fetched earlier
    mv.visitVarInsn(ALOAD, length);
   
    // need to construct the array of objects passed in

    // create the Object[]
    createArrayDefinition(mv, parameterTypes.length, Object.class);
View Full Code Here

      // push number onto stack
      pushIntOntoStack(mv, i);

      if (parameterType.isPrimitive()) {
        String wrapperType = getWrapperType(parameterType);
        mv.visitVarInsn(getVarInsn(parameterType), index);
       
        mv.visitMethodInsn(INVOKESTATIC, wrapperType, "valueOf", "(" + getPrimitiveLetter(parameterType) + ")L" + wrapperType + ";");
        mv.visitInsn(AASTORE);
       
        if (Long.TYPE.equals(parameterType) || Double.TYPE.equals(parameterType)) {
View Full Code Here

          index += 2;
        } else {
          index++;
        }
      } else {
        mv.visitVarInsn(ALOAD, index);
        mv.visitInsn(AASTORE);
        index++;
      }
    }
View Full Code Here

    }

    // catch InvocationTargetException
    if (exceptionTypes.length > 0) {
      mv.visitLabel(l2);
      mv.visitVarInsn(ASTORE, length);
      Label l5 = new Label();
      mv.visitLabel(l5);
 
      for (int i = 0; i < exceptionTypes.length; i++) {
        Class<?> exceptionType = exceptionTypes[i];
View Full Code Here

 
      for (int i = 0; i < exceptionTypes.length; i++) {
        Class<?> exceptionType = exceptionTypes[i];
       
        mv.visitLdcInsn(Type.getType("L" + exceptionType.getCanonicalName().replaceAll("\\.", "/") + ";"));
        mv.visitVarInsn(ALOAD, length);
        mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/reflect/InvocationTargetException", "getCause", "()Ljava/lang/Throwable;");
        mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Object", "getClass", "()Ljava/lang/Class;");
        mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Object", "equals", "(Ljava/lang/Object;)Z");
        Label l6 = new Label();
        mv.visitJumpInsn(IFEQ, l6);
View Full Code Here

        mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Object", "equals", "(Ljava/lang/Object;)Z");
        Label l6 = new Label();
        mv.visitJumpInsn(IFEQ, l6);
        Label l7 = new Label();
        mv.visitLabel(l7);
        mv.visitVarInsn(ALOAD, length);
        mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/reflect/InvocationTargetException", "getCause", "()Ljava/lang/Throwable;");
        mv.visitTypeInsn(CHECKCAST, exceptionType.getCanonicalName().replaceAll("\\.", "/"));
        mv.visitInsn(ATHROW);
        mv.visitLabel(l6);
       
View Full Code Here

        mv.visitLabel(l6);
       
        if (i == (exceptionTypes.length - 1)) {
          mv.visitTypeInsn(NEW, "java/lang/reflect/UndeclaredThrowableException");
          mv.visitInsn(DUP);
          mv.visitVarInsn(ALOAD, length);
          mv.visitMethodInsn(INVOKESPECIAL, "java/lang/reflect/UndeclaredThrowableException", "<init>", "(Ljava/lang/Throwable;)V");
          mv.visitInsn(ATHROW);
        }
      }
    }
View Full Code Here

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.