List of usage examples for org.objectweb.asm.signature SignatureWriter visitClassBound
@Override
public SignatureVisitor visitClassBound()
From source file:co.cask.cdap.internal.io.FieldAccessorGenerator.java
License:Apache License
/** * @return the getter signature {@code <T> T get(Object object)} *//*from w ww.j a va2 s . c o m*/ 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)} *//*from w w w. j ava 2 s. c om*/ 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:com.google.code.jconts.instrument.gen.ContinuationClassGenerator.java
License:Apache License
public ContinuationClassGenerator(MethodContext info) { this.info = info; this.stateDesc = info.stateType.getDescriptor(); SignatureWriter sign = new SignatureWriter(); // Name<T> implements Continuation<T> sign.visitFormalTypeParameter("T"); SignatureVisitor v = sign.visitClassBound(); v.visitClassType(OBJECT_NAME);/* www. j a v a2 s .co m*/ v.visitEnd(); v = sign.visitSuperclass(); v.visitClassType(OBJECT_NAME); v.visitEnd(); v = sign.visitInterface(); v.visitClassType(CONTINUATION_NAME); v.visitTypeArgument('=').visitTypeVariable("T"); v.visitEnd(); this.signature = sign.toString(); }
From source file:com.pongasoft.kiwidoc.builder.serializer.type.TypeEncoder.java
License:Apache License
/** * @return the signature for a given generic type variable *//*from w w w .j a v a 2 s . co m*/ public String encodeGenericTypeVariables(GenericTypeVariables type) { SignatureWriter sw = new SignatureWriter(); for (GenericTypeVariable gtv : type.getGenericTypeVariables()) { sw.visitFormalTypeParameter(gtv.getName()); List<Type> bounds = gtv.getBounds(); if (bounds.isEmpty()) bounds = OBJECT_BOUNDS; int i = 0; for (Type bound : bounds) { SignatureVisitor sv; if (i > 0) { sv = sw.visitInterfaceBound(); } else { sv = sw.visitClassBound(); } buildType(sv, bound); i++; } } // the signature is not complete without visiting the superclass... so we visit it and then // we remove it from the signature SignatureVisitor sv = sw.visitSuperclass(); buildType(sv, OBJECT_TYPE); String signature = sw.toString(); signature = signature.substring(0, signature.length() - OBJECT_SIGNATURE_LENGTH); return signature; }