List of usage examples for org.objectweb.asm.signature SignatureWriter SignatureWriter
public SignatureWriter()
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/*from w ww. ja v a 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();/*from w ww. j av a2s. 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 w ww. jav a2 s . co m */ 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 av a 2 s .c o m*/ } 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)} *///from w w w. jav a 2 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 www.j a v a2 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: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 {/* www .ja va2 s.co m*/ 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. *//* www .j av a 2s . c o m*/ 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./* ww w . j a va2 s . co 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 w w w . j a v a 2s.co m */ @Nullable public String getSignature(Element element) { SignatureWriter writer = new SignatureWriter(); element.accept(elementVisitorAdapter, writer); String result = writer.toString(); return result.isEmpty() ? null : result; }