Package org.objectweb.asm.signature

Examples of org.objectweb.asm.signature.SignatureVisitor


        if (signature == null) {
            return null;
        }
        SignatureReader r = new SignatureReader(signature);
        SignatureWriter w = new SignatureWriter();
        SignatureVisitor a = createRemappingSignatureAdapter(w);
        if (typeSignature) {
            r.acceptType(a);
        } else {
            r.accept(a);
        }
View Full Code Here


        String superName;
        if (_implementedType.isInterface()) {
            superName = getInternalClassName(Object.class.getName());

            SignatureWriter sw = new SignatureWriter();
            final SignatureVisitor sv = sw.visitSuperclass();
            sv.visitClassType(superName);
            sv.visitEnd();

            generateSignature(_implementedType, sw.visitInterface());
            sw.visitEnd();

            cw.visit(V1_5, ACC_ABSTRACT + ACC_PUBLIC + ACC_SUPER, internalClass, sw.toString(),
View Full Code Here

*/
public final class Signatures {

  public static String getClassSignature(TypeToken<?> interfaceType) {
    SignatureWriter signWriter = new SignatureWriter();
    SignatureVisitor sv = signWriter.visitSuperclass();
    sv.visitClassType(Type.getInternalName(Object.class));
    sv.visitEnd();

    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();
View Full Code Here

    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');
View Full Code Here

  @Test
  public void tiny2() {
    SignatureWriter sw = new SignatureWriter();
    sw.visitClassType(Type.getInternalName(Pair.class));
    SignatureVisitor sw2 = sw.visitTypeArgument('=');
    sw2.visitClassType(Type.getInternalName(String.class));
    sw2.visitEnd();
    sw.visitEnd();
    String res = sw.toString();
  }
View Full Code Here

  public void getSignature(wyvern.tools.types.Type type, SignatureVisitor sig, boolean baseAllowed) {
    if (type instanceof Arrow) {
      wyvern.tools.types.Type argument = ((Arrow) type).getArgument();
      if (argument instanceof Unit) {
        sig.visitClassType(Type.getInternalName(Supplier.class));
        SignatureVisitor sw2 = sig.visitTypeArgument('=');
        getSignature(((Arrow) type).getResult(), sw2, true);
        sw2.visitEnd();
        return;
      }
      if (argument instanceof Tuple) {
        wyvern.tools.types.Type[] types = ((Tuple) argument).getTypeArray();
        if (types.length == 2) {
          sig.visitClassType(Type.getInternalName(BiFunction.class));
          SignatureVisitor sw2 = sig.visitTypeArgument('=');
          getSignature(types[0], sw2, false);
          getSignature(types[1], sw2, false);
          getSignature(((Arrow) type).getResult(), sw2, false);
          sw2.visitEnd();
          return;
        }
      }
      if (argument instanceof Int) {
        sig.visitClassType(Type.getInternalName(IntFunction.class));
        SignatureVisitor sw2 = sig.visitTypeArgument('=');
        getSignature(((Arrow) type).getResult(), sw2, true);
        sw2.visitEnd();
        return;
      }
      sig.visitClassType(Type.getInternalName(Function.class));
      SignatureVisitor sw2 = sig.visitTypeArgument('=');
      getSignature(argument, sw2, false);
      getSignature(((Arrow) type).getResult(), sw2, false);
      sw2.visitEnd();
    } else if (type instanceof Tuple) {
      Class genTgt = null;
      switch (((Tuple) type).getTypeArray().length) {
        case 0: genTgt = null; break;
        case 1: genTgt = null; break;
        case 2: genTgt = Pair.class; break;
        case 3: genTgt = Triplet.class; break;
        case 4: genTgt = Quartet.class; break;
        case 5: genTgt = Quintet.class; break;
        case 6: genTgt = Sextet.class; break;
        case 7: genTgt = Septet.class; break;
        case 8: genTgt = Octet.class; break;
        case 9: genTgt = Ennead.class; break;
        case 10: genTgt = Decade.class; break;
        default: throw new RuntimeException();
      }
      sig.visitClassType(Type.getInternalName(genTgt));
      SignatureVisitor sw2 = sig.visitTypeArgument('=');
      for (wyvern.tools.types.Type tpe : ((Tuple) type).getTypeArray())
        getSignature(tpe, sw2, false);
      sw2.visitEnd();
      return;
    } else {
      Type rType = getType(type, baseAllowed);
      if (rType.getClassName() != null) {
        sig.visitClassType(rType.getClassName());
View Full Code Here

        String superName;
        if (_implementedType.isInterface()) {
            superName = getInternalClassName(Object.class.getName());

            SignatureWriter sw = new SignatureWriter();
            final SignatureVisitor sv = sw.visitSuperclass();
            sv.visitClassType(superName);
            sv.visitEnd();

            generateSignature(_implementedType, sw.visitInterface());
            sw.visitEnd();

            cw.visit(V1_5, ACC_ABSTRACT + ACC_PUBLIC + ACC_SUPER, internalClass, sw.toString(),
View Full Code Here

TOP

Related Classes of org.objectweb.asm.signature.SignatureVisitor

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.