1 32 package net.sf.retrotranslator.runtime.impl; 33 34 import java.util.LinkedList ; 35 import net.sf.retrotranslator.runtime.asm.signature.SignatureVisitor; 36 37 40 public class TypeDescriptor extends EmptyVisitor { 41 42 public char baseType; 43 public String typeVariable; 44 public TypeDescriptor arrayType; 45 public LinkedList <ClassTypeElement> elements; 46 47 public void visitBaseType(char descriptor) { 48 baseType = descriptor; 49 } 50 51 public void visitTypeVariable(String name) { 52 typeVariable = name; 53 } 54 55 public SignatureVisitor visitArrayType() { 56 arrayType = new TypeDescriptor(); 57 return arrayType; 58 } 59 60 public void visitClassType(String name) { 61 if (elements == null) { 62 elements = new LinkedList <ClassTypeElement>(); 63 } 64 elements.add(new ClassTypeElement(name)); 65 } 66 67 public void visitInnerClassType(String name) { 68 elements.add(new ClassTypeElement(name)); 69 } 70 71 public void visitTypeArgument() { 72 elements.getLast().getArguments().add(new TypeArgument()); 73 } 74 75 public SignatureVisitor visitTypeArgument(char wildcard) { 76 TypeDescriptor typeDescriptor = new TypeDescriptor(); 77 elements.getLast().getArguments().add(new TypeArgument(wildcard, typeDescriptor)); 78 return typeDescriptor; 79 } 80 81 } 82 | Popular Tags |