1 16 package com.google.gwt.core.ext.typeinfo; 17 18 import java.util.ArrayList ; 19 import java.util.Iterator ; 20 import java.util.List ; 21 22 25 public class JParameterizedType extends JType { 26 27 private final JClassType parameterized; 28 29 private final List typeArgs = new ArrayList (); 30 31 JParameterizedType(JClassType parameterized) { 32 this.parameterized = parameterized; 33 } 34 35 38 public String getJNISignature() { 39 return getRawType().getJNISignature(); 40 } 41 42 public JType getLeafType() { 43 return parameterized; 44 } 45 46 49 public String getNonParameterizedQualifiedSourceName() { 50 return parameterized.getQualifiedSourceName(); 51 } 52 53 public String getParameterizedQualifiedSourceName() { 54 StringBuffer sb = new StringBuffer (); 55 sb.append(parameterized.getQualifiedSourceName()); 56 sb.append('<'); 57 boolean needComma = false; 58 for (Iterator iter = typeArgs.iterator(); iter.hasNext();) { 59 JType typeArg = (JType) iter.next(); 60 if (needComma) { 61 sb.append(", "); 62 } else { 63 needComma = true; 64 } 65 sb.append(typeArg.getParameterizedQualifiedSourceName()); 66 } 67 sb.append('>'); 68 return sb.toString(); 69 } 70 71 75 public String getQualifiedSourceName() { 76 return parameterized.getQualifiedSourceName(); 77 } 78 79 public JClassType getRawType() { 80 return parameterized; 81 } 82 83 86 public String getSimpleSourceName() { 87 return parameterized.getSimpleSourceName(); 88 } 89 90 public JType[] getTypeArgs() { 91 return (JType[]) typeArgs.toArray(TypeOracle.NO_JTYPES); 92 } 93 94 public JArrayType isArray() { 95 return null; 96 } 97 98 public JClassType isClass() { 99 return parameterized.isClass(); 100 } 101 102 public JClassType isInterface() { 103 return parameterized.isInterface(); 104 } 105 106 public JParameterizedType isParameterized() { 107 return this; 108 } 109 110 public JPrimitiveType isPrimitive() { 111 return null; 112 } 113 114 void addTypeArg(JType type) { 115 assert (type.isPrimitive() == null); 116 typeArgs.add(type); 117 } 118 } 119 | Popular Tags |