Search in sources :

Example 1 with SignatureReader

use of org.apache.tapestry5.internal.plastic.asm.signature.SignatureReader in project tapestry-5 by apache.

the class Remapper method mapSignature.

/**
 * Returns the given signature, remapped with the {@link SignatureVisitor} returned by {@link
 * #createSignatureRemapper(SignatureVisitor)}.
 *
 * @param signature a <i>JavaTypeSignature</i>, <i>ClassSignature</i> or <i>MethodSignature</i>.
 * @param typeSignature whether the given signature is a <i>JavaTypeSignature</i>.
 * @return signature the given signature, remapped with the {@link SignatureVisitor} returned by
 *     {@link #createSignatureRemapper(SignatureVisitor)}.
 */
public String mapSignature(final String signature, final boolean typeSignature) {
    if (signature == null) {
        return null;
    }
    SignatureReader signatureReader = new SignatureReader(signature);
    SignatureWriter signatureWriter = new SignatureWriter();
    SignatureVisitor signatureRemapper = createSignatureRemapper(signatureWriter);
    if (typeSignature) {
        signatureReader.acceptType(signatureRemapper);
    } else {
        signatureReader.accept(signatureRemapper);
    }
    return signatureWriter.toString();
}
Also used : SignatureReader(org.apache.tapestry5.internal.plastic.asm.signature.SignatureReader) SignatureVisitor(org.apache.tapestry5.internal.plastic.asm.signature.SignatureVisitor) SignatureWriter(org.apache.tapestry5.internal.plastic.asm.signature.SignatureWriter)

Example 2 with SignatureReader

use of org.apache.tapestry5.internal.plastic.asm.signature.SignatureReader in project tapestry-5 by apache.

the class Textifier method appendJavaDeclaration.

/**
 * Appends the Java generic type declaration corresponding to the given signature.
 *
 * @param name a class, field or method name.
 * @param signature a class, field or method signature.
 */
private void appendJavaDeclaration(final String name, final String signature) {
    TraceSignatureVisitor traceSignatureVisitor = new TraceSignatureVisitor(access);
    new SignatureReader(signature).accept(traceSignatureVisitor);
    stringBuilder.append("// declaration: ");
    if (traceSignatureVisitor.getReturnType() != null) {
        stringBuilder.append(traceSignatureVisitor.getReturnType());
        stringBuilder.append(' ');
    }
    stringBuilder.append(name);
    stringBuilder.append(traceSignatureVisitor.getDeclaration());
    if (traceSignatureVisitor.getExceptions() != null) {
        stringBuilder.append(" throws ").append(traceSignatureVisitor.getExceptions());
    }
    stringBuilder.append('\n');
}
Also used : SignatureReader(org.apache.tapestry5.internal.plastic.asm.signature.SignatureReader)

Aggregations

SignatureReader (org.apache.tapestry5.internal.plastic.asm.signature.SignatureReader)2 SignatureVisitor (org.apache.tapestry5.internal.plastic.asm.signature.SignatureVisitor)1 SignatureWriter (org.apache.tapestry5.internal.plastic.asm.signature.SignatureWriter)1