in src/main/java/org/apache/commons/text/FormattableUtils.java [91:115]
public static Formatter append(final CharSequence seq, final Formatter formatter, final int flags, final int width,
final int precision, final char padChar, final CharSequence truncateEllipsis) {
if (!(truncateEllipsis == null || precision < 0 || truncateEllipsis.length() <= precision)) {
throw new IllegalArgumentException(
String.format("Specified ellipsis '%s' exceeds precision of %s",
truncateEllipsis,
precision));
}
final StringBuilder buf = new StringBuilder(seq);
if (precision >= 0 && precision < seq.length()) {
final CharSequence ellipsis;
if (truncateEllipsis == null) {
ellipsis = StringUtils.EMPTY;
} else {
ellipsis = truncateEllipsis;
}
buf.replace(precision - ellipsis.length(), seq.length(), ellipsis.toString());
}
final boolean leftJustify = (flags & LEFT_JUSTIFY) == LEFT_JUSTIFY;
for (int i = buf.length(); i < width; i++) {
buf.insert(leftJustify ? i : 0, padChar);
}
formatter.format(buf.toString());
return formatter;
}