Example usage for com.google.gwt.dev.asm Opcodes ACC_INTERFACE

List of usage examples for com.google.gwt.dev.asm Opcodes ACC_INTERFACE

Introduction

In this page you can find the example usage for com.google.gwt.dev.asm Opcodes ACC_INTERFACE.

Prototype

int ACC_INTERFACE

To view the source code for com.google.gwt.dev.asm Opcodes ACC_INTERFACE.

Click Source Link

Usage

From source file:com.googlecode.gwt.test.internal.rewrite.RewriteSingleJsoImplDispatches.java

License:Apache License

@Override
public void visit(int version, int access, String name, String signature, String superName,
        String[] interfaces) {/*from   w  w  w. j  a  v  a 2  s  . co m*/
    assert currentTypeName == null;
    super.visit(version, access, name, signature, superName, interfaces);

    /*
     * This visitor would mangle JSO$ since it acts as a roll-up of all SingleJso types and the
     * result would be repeated method definitions due to the trampoline methods this visitor
     * would create.
     */
    if (name.equals(OverlayTypesRewriter.JAVASCRIPTOBJECT_IMPL_DESC)) {
        return;
    }

    currentTypeName = name;
    inSingleJsoImplInterfaceType = jsoData.getSingleJsoIntfTypes().contains(name);

    /*
     * Implements objective #2: non-JSO types that implement a SingleJsoImpl interface don't have
     * their original instance methods altered. Instead, we add trampoline methods with mangled
     * names that simply call over to the original methods.
     */
    if (interfaces != null && (access & Opcodes.ACC_INTERFACE) == 0) {
        Set<String> toStub = computeAllInterfaces(interfaces);
        toStub.retainAll(jsoData.getSingleJsoIntfTypes());

        for (String stubIntr : toStub) {
            writeTrampoline(stubIntr);
        }
    }
}