List of usage examples for org.objectweb.asm.signature SignatureVisitor visitBaseType
public void visitBaseType(final char descriptor)
From source file:co.cask.cdap.internal.asm.Signatures.java
License:Apache License
public static void visitTypeSignature(TypeToken<?> type, SignatureVisitor visitor) { Class<?> rawType = type.getRawType(); if (rawType.isPrimitive()) { visitor.visitBaseType(Type.getType(rawType).toString().charAt(0)); return;/*w ww . ja v a 2 s .c o m*/ } else if (rawType.isArray()) { visitTypeSignature(type.getComponentType(), visitor.visitArrayType()); return; } else { visitor.visitClassType(Type.getInternalName(rawType)); } java.lang.reflect.Type visitType = type.getType(); if (visitType instanceof ParameterizedType) { for (java.lang.reflect.Type argType : ((ParameterizedType) visitType).getActualTypeArguments()) { visitTypeSignature(TypeToken.of(argType), visitor.visitTypeArgument(SignatureVisitor.INSTANCEOF)); } } visitor.visitEnd(); }
From source file:com.pongasoft.kiwidoc.builder.serializer.type.TypeEncoder.java
License:Apache License
private void buildType(SignatureVisitor sv, Type type) { if (type instanceof PrimitiveType) { PrimitiveType primitiveType = (PrimitiveType) type; sv.visitBaseType(EnumCodec.INSTANCE.encode(primitiveType.getPrimitive()).charAt(0)); return;/*w ww .j ava2 s . com*/ } if (type instanceof GenericVariable) { GenericVariable genericVariable = (GenericVariable) type; sv.visitTypeVariable(genericVariable.getName()); return; } if (type instanceof ArrayType) { ArrayType arrayType = (ArrayType) type; for (int i = 0; i < arrayType.getDimension(); i++) sv = sv.visitArrayType(); buildType(sv, arrayType.getType()); return; } if (type instanceof GenericType) { GenericType genericType = (GenericType) type; int i = 0; for (TypePart typePart : genericType.getTypeParts()) { if (i == 0) { sv.visitClassType(ClassResource.computeInternalName(typePart.getName())); } else { sv.visitInnerClassType(typePart.getName()); } i++; buildGenericType(sv, typePart.getGenerics()); } sv.visitEnd(); return; } if (type instanceof UnresolvedType) { UnresolvedType unresolvedType = (UnresolvedType) type; sv.visitClassType(unresolvedType.getInternalName()); sv.visitEnd(); return; } throw new RuntimeException("unsupported type here..." + type.getClass().getName()); }