@Override public Type as(TypeCategory category) { if (getCategory() == category) { return this; } else { return super.as(category); } }
public TypeCategory getOriginalCategory() { return super.getCategory(); }
@Override public String getGenericName(boolean asArgType, Set<String> packages, Set<String> classes) { if (!asArgType) { if (Types.OBJECT.equals(type)) { return "?"; } else { String genericName = super.getGenericName(true, packages, classes); return Strings.isNullOrEmpty(genericName) ? "?" : "? extends " + genericName; } } else { return super.getGenericName(asArgType, packages, classes); } }
@Override public String getGenericName(boolean asArgType, Set<String> packages, Set<String> classes) { if (!asArgType) { if (superType instanceof TypeExtends) { return "?"; } else { return "? super " + superType.getGenericName(true, packages, classes); } } else { return super.getGenericName(asArgType, packages, classes); } }