code: public static String getQualifiedName(TypeMirror type) {
      switch (type.getKind()) {
        case DECLARED:
          return getQualifiedNameForTypeElement((TypeElement) ((DeclaredType) type).asElement());
        case TYPEVAR:
          return getQualifiedNameForElement(((TypeVariable) type).asElement());
        case INTERSECTION:
          return "&";
        case WILDCARD:
          return "?";
        default:
          throw new AssertionError("Unexpected type: " + type + " with kind: " + type.getKind());
      }
    }
docs: Gets the qualified name for this type, as expected by a NameList instance.