Example usage for org.objectweb.asm Opcodes V1_3

List of usage examples for org.objectweb.asm Opcodes V1_3

Introduction

In this page you can find the example usage for org.objectweb.asm Opcodes V1_3.

Prototype

int V1_3

To view the source code for org.objectweb.asm Opcodes V1_3.

Click Source Link

Usage

From source file:org.jruby.javasupport.proxy.JavaProxyClassFactory.java

License:LGPL

private static ClassWriter beginProxyClass(final String targetClassName, final Class superClass,
        final Class[] interfaces) {

    ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS);

    int access = Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL | Opcodes.ACC_STATIC;
    String name = toInternalClassName(targetClassName);
    String signature = null;/*from w w  w  .  j a  v a 2s  . c  o m*/
    String supername = toInternalClassName(superClass);
    String[] interfaceNames = new String[interfaces.length + 1];
    for (int i = 0; i < interfaces.length; i++) {
        interfaceNames[i] = toInternalClassName(interfaces[i]);
    }
    interfaceNames[interfaces.length] = toInternalClassName(InternalJavaProxy.class);

    // start class
    cw.visit(Opcodes.V1_3, access, name, signature, supername, interfaceNames);

    cw.visitField(Opcodes.ACC_PRIVATE, INVOCATION_HANDLER_FIELD_NAME, INVOCATION_HANDLER_TYPE.getDescriptor(),
            null, null).visitEnd();

    cw.visitField(Opcodes.ACC_PRIVATE | Opcodes.ACC_STATIC, PROXY_CLASS_FIELD_NAME,
            PROXY_CLASS_TYPE.getDescriptor(), null, null).visitEnd();

    return cw;
}

From source file:scouter.agent.AgentTransformer.java

License:Apache License

private ClassWriter getClassWriter(final ClassDesc classDesc) {
    ClassWriter cw;/*from ww w  .  j av a 2 s .  co  m*/
    switch (classDesc.version) {
    case Opcodes.V1_1:
    case Opcodes.V1_2:
    case Opcodes.V1_3:
    case Opcodes.V1_4:
    case Opcodes.V1_5:
    case Opcodes.V1_6:
        cw = new ScouterClassWriter(ClassWriter.COMPUTE_MAXS);
        break;
    default:
        cw = new ScouterClassWriter(ClassWriter.COMPUTE_FRAMES | ClassWriter.COMPUTE_MAXS);
    }
    return cw;
}