Example usage for org.objectweb.asm.signature SignatureWriter toString

List of usage examples for org.objectweb.asm.signature SignatureWriter toString

Introduction

In this page you can find the example usage for org.objectweb.asm.signature SignatureWriter toString.

Prototype

@Override
public String toString() 

Source Link

Document

Returns the signature that was built by this signature writer.

Usage

From source file:co.cask.cdap.internal.app.runtime.service.http.HttpHandlerGenerator.java

License:Apache License

/**
 * Generates the class signature of the generate class. The generated class is not parameterized, however
 * it extends from {@link AbstractHttpHandlerDelegator} with parameterized type of the user http handler.
 *
 * @param delegateType Type of the user http handler
 * @return The signature string// w  w w  .  j a va 2 s . c  o m
 */
private String getClassSignature(TypeToken<?> delegateType) {
    SignatureWriter writer = new SignatureWriter();

    // Construct the superclass signature as "AbstractHttpHandlerDelegator<UserHandlerClass>"
    SignatureVisitor sv = writer.visitSuperclass();
    sv.visitClassType(Type.getInternalName(AbstractHttpHandlerDelegator.class));
    SignatureVisitor tv = sv.visitTypeArgument('=');
    tv.visitClassType(Type.getInternalName(delegateType.getRawType()));
    tv.visitEnd();
    sv.visitEnd();

    return writer.toString();
}

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();/* w w  w .java2s  .  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();
}

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

License:Apache License

/**
 * Generates signature for the given method.
 *
 * @param method Method that needs signature to be generated
 * @param types List of {@link TypeToken} that matches with the number of arguments in the given method.
 *              For a given method argument, if the coresponding {@link TypeToken} is non-null, it will be
 *              used to generate the type parameter in the signature, otherwise, the one in the method will be used.
 *              It's useful if the method is parameterized so that parameterize type information can be passed
 *              through the type tokens.
 * @return A method signature string//from  ww w. j av a2 s .c  om
 */
public static String getMethodSignature(Method method, TypeToken<?>... types) {
    SignatureWriter signWriter = new SignatureWriter();

    Type[] argumentTypes = method.getArgumentTypes();

    for (int i = 0; i < argumentTypes.length; i++) {
        SignatureVisitor sv = signWriter.visitParameterType();
        if (types[i] != null) {
            visitTypeSignature(types[i], sv);
        } else {
            sv.visitClassType(argumentTypes[i].getInternalName());
            sv.visitEnd();
        }
    }

    signWriter.visitReturnType().visitBaseType('V');

    return signWriter.toString();
}

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

License:Apache License

public static String getFieldSignature(TypeToken<?> fieldType) {
    SignatureWriter signWriter = new SignatureWriter();
    signWriter.visitClassType(Type.getInternalName(fieldType.getRawType()));

    if (fieldType.getType() instanceof ParameterizedType) {
        for (java.lang.reflect.Type paramType : ((ParameterizedType) fieldType.getType())
                .getActualTypeArguments()) {
            signWriter.visitTypeArgument(SignatureVisitor.INSTANCEOF);
            visitTypeSignature(fieldType.resolveType(paramType), signWriter);
        }//from  w  ww . j  a  v  a 2 s  .  c om
    }
    signWriter.visitEnd();
    return signWriter.toString();
}

From source file:co.cask.cdap.internal.io.FieldAccessorGenerator.java

License:Apache License

/**
 * @return the getter signature {@code <T> T get(Object object)}
 *//*  w w w . j ava2  s.  c om*/
private String getterSignature() {
    SignatureWriter writer = new SignatureWriter();
    writer.visitFormalTypeParameter("T");
    SignatureVisitor sv = writer.visitClassBound();
    sv.visitClassType(Type.getInternalName(Object.class));
    sv.visitEnd();

    sv = writer.visitParameterType();
    sv.visitClassType(Type.getInternalName(Object.class));
    sv.visitEnd();

    sv = sv.visitReturnType();
    sv.visitTypeVariable("T");

    return writer.toString();
}

From source file:co.cask.cdap.internal.io.FieldAccessorGenerator.java

License:Apache License

/**
 * @return the setter signature {@code <T> void set(Object object, T value)}
 *///  w w  w.j ava  2  s .  co  m
private String setterSignature() {
    SignatureWriter writer = new SignatureWriter();
    writer.visitFormalTypeParameter("T");
    SignatureVisitor sv = writer.visitClassBound();
    sv.visitClassType(Type.getInternalName(Object.class));
    sv.visitEnd();

    sv = writer.visitParameterType();
    sv.visitClassType(Type.getInternalName(Object.class));
    sv.visitEnd();

    sv = writer.visitParameterType();
    sv.visitTypeVariable("T");

    sv.visitReturnType().visitBaseType('V');

    return writer.toString();
}

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

License:Apache License

public static String getMethodSignature(Method method, TypeToken<?>[] types) {
    SignatureWriter signWriter = new SignatureWriter();

    Type[] argumentTypes = method.getArgumentTypes();

    for (int i = 0; i < argumentTypes.length; i++) {
        SignatureVisitor sv = signWriter.visitParameterType();
        if (types[i] != null) {
            visitTypeSignature(types[i], sv);
        } else {/*from  w  w w . ja  va  2s.com*/
            sv.visitClassType(argumentTypes[i].getInternalName());
            sv.visitEnd();
        }
    }

    signWriter.visitReturnType().visitBaseType('V');

    return signWriter.toString();
}

From source file:com.android.tools.layoutlib.create.AbstractClassAdapter.java

License:Apache License

/**
 * Renames the ClassSignature handled by ClassVisitor.visit
 * or the MethodTypeSignature handled by ClassVisitor.visitMethod.
 *///  w  w  w. ja va 2 s. c om
String renameTypeSignature(String sig) {
    if (sig == null) {
        return null;
    }
    SignatureReader reader = new SignatureReader(sig);
    SignatureWriter writer = new SignatureWriter();
    reader.accept(new RenameSignatureAdapter(writer));
    sig = writer.toString();
    return sig;
}

From source file:com.android.tools.layoutlib.create.RenameClassAdapter.java

License:Apache License

/**
 * Renames the FieldTypeSignature handled by ClassVisitor.visitField
 * or MethodVisitor.visitLocalVariable./*  www. j a va  2s .c o m*/
 */
String renameFieldSignature(String sig) {
    if (sig == null) {
        return null;
    }
    SignatureReader reader = new SignatureReader(sig);
    SignatureWriter writer = new SignatureWriter();
    reader.acceptType(new RenameSignatureAdapter(writer));
    sig = writer.toString();
    return sig;
}

From source file:com.facebook.buck.jvm.java.abi.SignatureFactory.java

License:Apache License

/**
 * Returns the type signature of the given element. If none is required by the VM spec, returns
 * null./*from www  .j a va  2 s.c  o  m*/
 */
@Nullable
public String getSignature(Element element) {
    SignatureWriter writer = new SignatureWriter();
    element.accept(elementVisitorAdapter, writer);
    String result = writer.toString();
    return result.isEmpty() ? null : result;
}