/** * Create a new JSON type for the given declared type. The caller is responsible for providing a * list of concrete types to use to replace parameterized type placeholders. */ private JsonType newJsonType( DeclaredType type, List<? extends TypeMirror> concreteTypes, Collection<DeclaredType> typeRecursionGuard) { TypeVisitorImpl visitor = new TypeVisitorImpl(type, concreteTypes, typeRecursionGuard); return type.accept(visitor, null); }
@Override public JsonType visitTypeVariable(TypeVariable typeVariable, Void o) { DeclaredType type = getDeclaredTypeForTypeVariable(typeVariable); if (type != null) // null: un-parameterized usage of a generics-having type { return type.accept(this, o); } else { return null; } }