langtools/src/jdk.compiler/share/classes/com/sun/tools/javah/TypeSignature.java
changeset 26266 2d24bda701dc
parent 25874 83c19f00452c
child 34752 9c262a013456
equal deleted inserted replaced
26265:46aacfffd3b5 26266:2d24bda701dc
    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();