// calculates the alignment to use private AsciiTableAlignment calculateAlignment(Class<?> columnType) { FormatSettings<Object> formatSettings = formatSettingsProvider.settings(columnType, defaultSettings); boolean isNumeric = formatSettings.getCategory() == FormatCategory.NUMERIC || formatSettings.getCategory() == FormatCategory.DATE; return isNumeric ? AsciiTableAlignment.RIGHT : AsciiTableAlignment.LEFT; }
// ------------------------------------------------------------------------- private ASCIITableHeader toAsciiTableHeader(String header, Class<?> columnType) { FormatSettings formatSettings = formatSettingsProvider.getSettings(columnType, fallbackSettings); boolean isNumeric = formatSettings.getCategory() == FormatCategory.NUMERIC || formatSettings.getCategory() == FormatCategory.DATE; int align = isNumeric ? AsciiTable.ALIGN_RIGHT : AsciiTable.ALIGN_LEFT; return ASCIITableHeader.h(header, align, align); }
// ------------------------------------------------------------------------- @SuppressWarnings("unchecked") protected String formatValue(Object value, ReportOutputFormat format) { Object formatValue = value instanceof Optional ? ((Optional<?>) value).orElse(null) : value; if (formatValue == null) { return ""; } FormatSettings formatSettings = formatSettingsProvider.getSettings(formatValue.getClass(), fallbackSettings); ValueFormatter<Object> formatter = (ValueFormatter<Object>) formatSettings.getFormatter(); if (format == ReportOutputFormat.CSV) { return formatter.formatForCsv(formatValue); } else { return formatter.formatForDisplay(formatValue); } }