Example usage for org.objectweb.asm.signature SignatureVisitor visitInterface

List of usage examples for org.objectweb.asm.signature SignatureVisitor visitInterface

Introduction

In this page you can find the example usage for org.objectweb.asm.signature SignatureVisitor visitInterface.

Prototype

public SignatureVisitor visitInterface() 

Source Link

Document

Visits the type of an interface implemented by the class.

Usage

From source file:co.cask.cdap.internal.asm.Signatures.java

License:Apache License

public static String getClassSignature(TypeToken<?> interfaceType) {
    SignatureWriter signWriter = new SignatureWriter();
    SignatureVisitor sv = signWriter.visitSuperclass();
    sv.visitClassType(Type.getInternalName(Object.class));
    sv.visitEnd();/*from w ww.  j a va 2s . c o  m*/

    SignatureVisitor interfaceVisitor = sv.visitInterface();
    interfaceVisitor.visitClassType(Type.getInternalName(interfaceType.getRawType()));

    if (interfaceType.getType() instanceof ParameterizedType) {
        for (java.lang.reflect.Type paramType : ((ParameterizedType) interfaceType.getType())
                .getActualTypeArguments()) {
            interfaceVisitor.visitTypeArgument(SignatureVisitor.INSTANCEOF);
            visitTypeSignature(interfaceType.resolveType(paramType), interfaceVisitor);
        }
    }

    sv.visitEnd();
    return signWriter.toString();
}