37 import javax.lang.model.type.TypeMirror; |
37 import javax.lang.model.type.TypeMirror; |
38 import javax.lang.model.type.TypeVariable; |
38 import javax.lang.model.type.TypeVariable; |
39 import javax.lang.model.type.TypeVisitor; |
39 import javax.lang.model.type.TypeVisitor; |
40 import javax.lang.model.util.Elements; |
40 import javax.lang.model.util.Elements; |
41 import javax.lang.model.util.SimpleTypeVisitor9; |
41 import javax.lang.model.util.SimpleTypeVisitor9; |
|
42 |
|
43 import com.sun.tools.javac.util.DefinedBy; |
|
44 import com.sun.tools.javac.util.DefinedBy.Api; |
42 |
45 |
43 /** |
46 /** |
44 * Returns internal type signature. |
47 * Returns internal type signature. |
45 * |
48 * |
46 * <p><b>This is NOT part of any supported API. |
49 * <p><b>This is NOT part of any supported API. |
247 } |
250 } |
248 |
251 |
249 |
252 |
250 String qualifiedTypeName(TypeMirror type) { |
253 String qualifiedTypeName(TypeMirror type) { |
251 TypeVisitor<Name, Void> v = new SimpleTypeVisitor9<Name, Void>() { |
254 TypeVisitor<Name, Void> v = new SimpleTypeVisitor9<Name, Void>() { |
252 @Override |
255 @Override @DefinedBy(Api.LANGUAGE_MODEL) |
253 public Name visitArray(ArrayType t, Void p) { |
256 public Name visitArray(ArrayType t, Void p) { |
254 return t.getComponentType().accept(this, p); |
257 return t.getComponentType().accept(this, p); |
255 } |
258 } |
256 |
259 |
257 @Override |
260 @Override @DefinedBy(Api.LANGUAGE_MODEL) |
258 public Name visitDeclared(DeclaredType t, Void p) { |
261 public Name visitDeclared(DeclaredType t, Void p) { |
259 return ((TypeElement) t.asElement()).getQualifiedName(); |
262 return ((TypeElement) t.asElement()).getQualifiedName(); |
260 } |
263 } |
261 |
264 |
262 @Override |
265 @Override @DefinedBy(Api.LANGUAGE_MODEL) |
263 public Name visitPrimitive(PrimitiveType t, Void p) { |
266 public Name visitPrimitive(PrimitiveType t, Void p) { |
264 return elems.getName(t.toString()); |
267 return elems.getName(t.toString()); |
265 } |
268 } |
266 |
269 |
267 @Override |
270 @Override @DefinedBy(Api.LANGUAGE_MODEL) |
268 public Name visitNoType(NoType t, Void p) { |
271 public Name visitNoType(NoType t, Void p) { |
269 if (t.getKind() == TypeKind.VOID) |
272 if (t.getKind() == TypeKind.VOID) |
270 return elems.getName("void"); |
273 return elems.getName("void"); |
271 return defaultAction(t, p); |
274 return defaultAction(t, p); |
272 } |
275 } |
273 |
276 |
274 @Override |
277 @Override @DefinedBy(Api.LANGUAGE_MODEL) |
275 public Name visitTypeVariable(TypeVariable t, Void p) { |
278 public Name visitTypeVariable(TypeVariable t, Void p) { |
276 return t.getUpperBound().accept(this, p); |
279 return t.getUpperBound().accept(this, p); |
277 } |
280 } |
278 }; |
281 }; |
279 return v.visit(type).toString(); |
282 return v.visit(type).toString(); |