private static void appendRecursiveTypes(final StringBuilder buf, final int[] recursiveTypeIndexes, final Type[] argumentTypes) { for (int i = 0; i < recursiveTypeIndexes.length; i++) { appendAllTo(buf.append('<'), ", ", argumentTypes[i].toString()).append('>'); } final Type[] argumentsFiltered = ArrayUtils.removeAll(argumentTypes, recursiveTypeIndexes); if (argumentsFiltered.length > 0) { appendAllTo(buf.append('<'), ", ", argumentsFiltered).append('>'); } }
/** * Format a {@link WildcardType} as a {@link String}. * @param w {@code WildcardType} to format * @return String * @since 3.2 */ private static String wildcardTypeToString(final WildcardType w) { final StringBuilder buf = new StringBuilder().append('?'); final Type[] lowerBounds = w.getLowerBounds(); final Type[] upperBounds = w.getUpperBounds(); if (lowerBounds.length > 1 || lowerBounds.length == 1 && lowerBounds[0] != null) { appendAllTo(buf.append(" super "), " & ", lowerBounds); } else if (upperBounds.length > 1 || upperBounds.length == 1 && !Object.class.equals(upperBounds[0])) { appendAllTo(buf.append(" extends "), " & ", upperBounds); } return buf.toString(); }
/** * Format a {@link TypeVariable} as a {@link String}. * @param v {@code TypeVariable} to format * @return String * @since 3.2 */ private static String typeVariableToString(final TypeVariable<?> v) { final StringBuilder buf = new StringBuilder(v.getName()); final Type[] bounds = v.getBounds(); if (bounds.length > 0 && !(bounds.length == 1 && Object.class.equals(bounds[0]))) { buf.append(" extends "); appendAllTo(buf, " & ", v.getBounds()); } return buf.toString(); }
/** * Format a {@link Class} as a {@link String}. * @param c {@code Class} to format * @return String * @since 3.2 */ private static String classToString(final Class<?> c) { if (c.isArray()) { return toString(c.getComponentType()) + "[]"; } final StringBuilder buf = new StringBuilder(); if (c.getEnclosingClass() != null) { buf.append(classToString(c.getEnclosingClass())).append('.').append(c.getSimpleName()); } else { buf.append(c.getName()); } if (c.getTypeParameters().length > 0) { buf.append('<'); appendAllTo(buf, ", ", c.getTypeParameters()); buf.append('>'); } return buf.toString(); }
/** * Format a {@link ParameterizedType} as a {@link String}. * @param p {@code ParameterizedType} to format * @return String * @since 3.2 */ private static String parameterizedTypeToString(final ParameterizedType p) { final StringBuilder buf = new StringBuilder(); final Type useOwner = p.getOwnerType(); final Class<?> raw = (Class<?>) p.getRawType(); if (useOwner == null) { buf.append(raw.getName()); } else { if (useOwner instanceof Class<?>) { buf.append(((Class<?>) useOwner).getName()); } else { buf.append(useOwner.toString()); } buf.append('.').append(raw.getSimpleName()); } final int[] recursiveTypeIndexes = findRecursiveTypes(p); if (recursiveTypeIndexes.length > 0) { appendRecursiveTypes(buf, recursiveTypeIndexes, p.getActualTypeArguments()); } else { appendAllTo(buf.append('<'), ", ", p.getActualTypeArguments()).append('>'); } return buf.toString(); }
private static void appendRecursiveTypes(final StringBuilder buf, final int[] recursiveTypeIndexes, final Type[] argumentTypes) { for (int i = 0; i < recursiveTypeIndexes.length; i++) { appendAllTo(buf.append('<'), ", ", argumentTypes[i].toString()).append('>'); } final Type[] argumentsFiltered = ArrayUtils.removeAll(argumentTypes, recursiveTypeIndexes); if (argumentsFiltered.length > 0) { appendAllTo(buf.append('<'), ", ", argumentsFiltered).append('>'); } }
private static void appendRecursiveTypes(final StringBuilder buf, final int[] recursiveTypeIndexes, final Type[] argumentTypes) { for (int i = 0; i < recursiveTypeIndexes.length; i++) { appendAllTo(buf.append('<'), ", ", argumentTypes[i].toString()).append('>'); } final Type[] argumentsFiltered = ArrayUtils.removeAll(argumentTypes, recursiveTypeIndexes); if (argumentsFiltered.length > 0) { appendAllTo(buf.append('<'), ", ", argumentsFiltered).append('>'); } }
private static void appendRecursiveTypes(final StringBuilder buf, final int[] recursiveTypeIndexes, final Type[] argumentTypes) { for (int i = 0; i < recursiveTypeIndexes.length; i++) { appendAllTo(buf.append('<'), ", ", argumentTypes[i].toString()).append('>'); } final Type[] argumentsFiltered = ArrayUtils.removeAll(argumentTypes, recursiveTypeIndexes); if (argumentsFiltered.length > 0) { appendAllTo(buf.append('<'), ", ", argumentsFiltered).append('>'); } }
/** * Format a {@link TypeVariable} as a {@link String}. * @param v {@code TypeVariable} to format * @return String * @since 3.2 */ private static String typeVariableToString(final TypeVariable<?> v) { final StringBuilder buf = new StringBuilder(v.getName()); final Type[] bounds = v.getBounds(); if (bounds.length > 0 && !(bounds.length == 1 && Object.class.equals(bounds[0]))) { buf.append(" extends "); appendAllTo(buf, " & ", v.getBounds()); } return buf.toString(); }
/** * Format a {@link WildcardType} as a {@link String}. * @param w {@code WildcardType} to format * @return String * @since 3.2 */ private static String wildcardTypeToString(final WildcardType w) { final StringBuilder buf = new StringBuilder().append('?'); final Type[] lowerBounds = w.getLowerBounds(); final Type[] upperBounds = w.getUpperBounds(); if (lowerBounds.length > 1 || lowerBounds.length == 1 && lowerBounds[0] != null) { appendAllTo(buf.append(" super "), " & ", lowerBounds); } else if (upperBounds.length > 1 || upperBounds.length == 1 && !Object.class.equals(upperBounds[0])) { appendAllTo(buf.append(" extends "), " & ", upperBounds); } return buf.toString(); }
/** * Format a {@link WildcardType} as a {@link String}. * @param w {@code WildcardType} to format * @return String * @since 3.2 */ private static String wildcardTypeToString(final WildcardType w) { final StringBuilder buf = new StringBuilder().append('?'); final Type[] lowerBounds = w.getLowerBounds(); final Type[] upperBounds = w.getUpperBounds(); if (lowerBounds.length > 1 || lowerBounds.length == 1 && lowerBounds[0] != null) { appendAllTo(buf.append(" super "), " & ", lowerBounds); } else if (upperBounds.length > 1 || upperBounds.length == 1 && !Object.class.equals(upperBounds[0])) { appendAllTo(buf.append(" extends "), " & ", upperBounds); } return buf.toString(); }
/** * Format a {@link WildcardType} as a {@link String}. * @param w {@code WildcardType} to format * @return String * @since 3.2 */ private static String wildcardTypeToString(final WildcardType w) { final StringBuilder buf = new StringBuilder().append('?'); final Type[] lowerBounds = w.getLowerBounds(); final Type[] upperBounds = w.getUpperBounds(); if (lowerBounds.length > 1 || lowerBounds.length == 1 && lowerBounds[0] != null) { appendAllTo(buf.append(" super "), " & ", lowerBounds); } else if (upperBounds.length > 1 || upperBounds.length == 1 && !Object.class.equals(upperBounds[0])) { appendAllTo(buf.append(" extends "), " & ", upperBounds); } return buf.toString(); }
/** * Format a {@link TypeVariable} as a {@link String}. * @param v {@code TypeVariable} to format * @return String * @since 3.2 */ private static String typeVariableToString(final TypeVariable<?> v) { final StringBuilder buf = new StringBuilder(v.getName()); final Type[] bounds = v.getBounds(); if (bounds.length > 0 && !(bounds.length == 1 && Object.class.equals(bounds[0]))) { buf.append(" extends "); appendAllTo(buf, " & ", v.getBounds()); } return buf.toString(); }
/** * Format a {@link TypeVariable} as a {@link String}. * @param v {@code TypeVariable} to format * @return String * @since 3.2 */ private static String typeVariableToString(final TypeVariable<?> v) { final StringBuilder buf = new StringBuilder(v.getName()); final Type[] bounds = v.getBounds(); if (bounds.length > 0 && !(bounds.length == 1 && Object.class.equals(bounds[0]))) { buf.append(" extends "); appendAllTo(buf, " & ", v.getBounds()); } return buf.toString(); }
/** * Format a {@link Class} as a {@link String}. * @param c {@code Class} to format * @return String * @since 3.2 */ private static String classToString(final Class<?> c) { if (c.isArray()) { return toString(c.getComponentType()) + "[]"; } final StringBuilder buf = new StringBuilder(); if (c.getEnclosingClass() != null) { buf.append(classToString(c.getEnclosingClass())).append('.').append(c.getSimpleName()); } else { buf.append(c.getName()); } if (c.getTypeParameters().length > 0) { buf.append('<'); appendAllTo(buf, ", ", c.getTypeParameters()); buf.append('>'); } return buf.toString(); }
/** * Format a {@link Class} as a {@link String}. * @param c {@code Class} to format * @return String * @since 3.2 */ private static String classToString(final Class<?> c) { if (c.isArray()) { return toString(c.getComponentType()) + "[]"; } final StringBuilder buf = new StringBuilder(); if (c.getEnclosingClass() != null) { buf.append(classToString(c.getEnclosingClass())).append('.').append(c.getSimpleName()); } else { buf.append(c.getName()); } if (c.getTypeParameters().length > 0) { buf.append('<'); appendAllTo(buf, ", ", c.getTypeParameters()); buf.append('>'); } return buf.toString(); }
/** * Format a {@link Class} as a {@link String}. * @param c {@code Class} to format * @return String * @since 3.2 */ private static String classToString(final Class<?> c) { if (c.isArray()) { return toString(c.getComponentType()) + "[]"; } final StringBuilder buf = new StringBuilder(); if (c.getEnclosingClass() != null) { buf.append(classToString(c.getEnclosingClass())).append('.').append(c.getSimpleName()); } else { buf.append(c.getName()); } if (c.getTypeParameters().length > 0) { buf.append('<'); appendAllTo(buf, ", ", c.getTypeParameters()); buf.append('>'); } return buf.toString(); }
/** * Format a {@link ParameterizedType} as a {@link String}. * @param p {@code ParameterizedType} to format * @return String * @since 3.2 */ private static String parameterizedTypeToString(final ParameterizedType p) { final StringBuilder buf = new StringBuilder(); final Type useOwner = p.getOwnerType(); final Class<?> raw = (Class<?>) p.getRawType(); if (useOwner == null) { buf.append(raw.getName()); } else { if (useOwner instanceof Class<?>) { buf.append(((Class<?>) useOwner).getName()); } else { buf.append(useOwner.toString()); } buf.append('.').append(raw.getSimpleName()); } final int[] recursiveTypeIndexes = findRecursiveTypes(p); if (recursiveTypeIndexes.length > 0) { appendRecursiveTypes(buf, recursiveTypeIndexes, p.getActualTypeArguments()); } else { appendAllTo(buf.append('<'), ", ", p.getActualTypeArguments()).append('>'); } return buf.toString(); }
/** * Format a {@link ParameterizedType} as a {@link String}. * @param p {@code ParameterizedType} to format * @return String * @since 3.2 */ private static String parameterizedTypeToString(final ParameterizedType p) { final StringBuilder buf = new StringBuilder(); final Type useOwner = p.getOwnerType(); final Class<?> raw = (Class<?>) p.getRawType(); if (useOwner == null) { buf.append(raw.getName()); } else { if (useOwner instanceof Class<?>) { buf.append(((Class<?>) useOwner).getName()); } else { buf.append(useOwner.toString()); } buf.append('.').append(raw.getSimpleName()); } final int[] recursiveTypeIndexes = findRecursiveTypes(p); if (recursiveTypeIndexes.length > 0) { appendRecursiveTypes(buf, recursiveTypeIndexes, p.getActualTypeArguments()); } else { appendAllTo(buf.append('<'), ", ", p.getActualTypeArguments()).append('>'); } return buf.toString(); }
/** * Format a {@link ParameterizedType} as a {@link String}. * @param p {@code ParameterizedType} to format * @return String * @since 3.2 */ private static String parameterizedTypeToString(final ParameterizedType p) { final StringBuilder buf = new StringBuilder(); final Type useOwner = p.getOwnerType(); final Class<?> raw = (Class<?>) p.getRawType(); if (useOwner == null) { buf.append(raw.getName()); } else { if (useOwner instanceof Class<?>) { buf.append(((Class<?>) useOwner).getName()); } else { buf.append(useOwner.toString()); } buf.append('.').append(raw.getSimpleName()); } final int[] recursiveTypeIndexes = findRecursiveTypes(p); if (recursiveTypeIndexes.length > 0) { appendRecursiveTypes(buf, recursiveTypeIndexes, p.getActualTypeArguments()); } else { appendAllTo(buf.append('<'), ", ", p.getActualTypeArguments()).append('>'); } return buf.toString(); }