public void format(Formatter formatter) { // Write out table header this.formatRow(formatter, this.headerRow); // Write out separator row this.clearScratchBuilder(); this.scratchBuilder.append('-'); for (int column = 0; column < this.columnWidths.size(); column++) { if (column > 0) { this.scratchBuilder.append("-+-"); } final int width = this.columnWidths.get(column); for (int i = 0; i < width; i++) { this.scratchBuilder.append('-'); } } this.scratchBuilder.append("-%n"); formatter.format(this.scratchBuilder.toString()); // Write out rows for (final List<TableEntry<?>> row : this.rows) { this.formatRow(formatter, row); } }
private void updateColumnSize(int index, TableEntry<?> value) { final int valueLength = estimateEntryLength(value); if (this.columnWidths.size() == index) { this.columnWidths.add(valueLength); } else { this.columnWidths.set(index, Math.max(this.columnWidths.get(index), valueLength)); } }
public TableFormatter(Formatter f, TableEntry<?> firstHeading, TableEntry<?>... headings) { Validate.notNull(firstHeading); // Setup scratch objects used for formatting data this.scratchBuilder = new StringBuilder(); this.scratchFormatter = new Formatter(scratchBuilder, f != null ? f.locale() : null); this.columnWidths = new ArrayList<Integer>(1 + headings.length); this.headerRow = new ArrayList<TableEntry<?>>(1 + headings.length); this.updateColumnSize(0, firstHeading); this.headerRow.add(firstHeading); for (final TableEntry<?> heading : headings) { this.updateColumnSize(this.headerRow.size(), heading); this.headerRow.add(heading); } }
public static void format(Iterable<? extends IPortalData> data, Logger l) { final Formatter f = new Formatter(new AppendableLogger(l, LogLevel.INFO)); final TableFormatter tableFormatter = new TableFormatter( new TableEntry<String>("sysid", "-", "s"), new TableEntry<String>("Description", "-", "s")); for (final IPortalData it : data) { final String dataId = it.getDataId(); String dataTitle = it.getDataTitle(); if (dataTitle == null || dataTitle.equals(dataId)) { dataTitle = ""; } tableFormatter.addRow( new TableEntry<String>(dataId, "-", "s"), new TableEntry<String>(dataTitle, "-", "s")); } tableFormatter.format(f); }
private void formatRow(Formatter formatter, final List<TableEntry<?>> row) { this.clearScratchBuilder(); this.scratchBuilder.append(' '); final Object[] formatArgs = new Object[this.columnWidths.size()]; for (int column = 0; column < this.columnWidths.size(); column++) { if (column > 0) { this.scratchBuilder.append(" | "); } final int width = this.columnWidths.get(column); final TableEntry<?> header = row.get(column); formatArgs[column] = header.getValue(); this.scratchBuilder.append(header.getFormatString(width)); } this.scratchBuilder.append(" %n"); formatter.format(this.scratchBuilder.toString(), formatArgs); }
public static void format(Iterable<? extends IPortalData> data, Logger l) { final Formatter f = new Formatter(new AppendableLogger(l, LogLevel.INFO)); final TableFormatter tableFormatter = new TableFormatter( new TableEntry<String>("sysid", "-", "s"), new TableEntry<String>("Description", "-", "s")); for (final IPortalData it : data) { final String dataId = it.getDataId(); String dataTitle = it.getDataTitle(); if (dataTitle == null || dataTitle.equals(dataId)) { dataTitle = ""; } tableFormatter.addRow( new TableEntry<String>(dataId, "-", "s"), new TableEntry<String>(dataTitle, "-", "s")); } tableFormatter.format(f); }
private void formatRow(Formatter formatter, final List<TableEntry<?>> row) { this.clearScratchBuilder(); this.scratchBuilder.append(' '); final Object[] formatArgs = new Object[this.columnWidths.size()]; for (int column = 0; column < this.columnWidths.size(); column++) { if (column > 0) { this.scratchBuilder.append(" | "); } final int width = this.columnWidths.get(column); final TableEntry<?> header = row.get(column); formatArgs[column] = header.getValue(); this.scratchBuilder.append(header.getFormatString(width)); } this.scratchBuilder.append(" %n"); formatter.format(this.scratchBuilder.toString(), formatArgs); }
public static void format(IPortalDataHandlerService dataHandlerService, Logger l) { final Formatter f = new Formatter(new AppendableLogger(l, LogLevel.INFO)); final Map<String, Set<Operations>> portalDataTypes = new TreeMap<String, Set<Operations>>(); final Iterable<IPortalDataType> exportPortalDataTypes = dataHandlerService.getExportPortalDataTypes(); addDataTypes(portalDataTypes, exportPortalDataTypes, Operations.EXPORT); final Iterable<IPortalDataType> deletePortalDataTypes = dataHandlerService.getDeletePortalDataTypes(); addDataTypes(portalDataTypes, deletePortalDataTypes, Operations.DELETE); final TableFormatter tableFormatter = new TableFormatter( new TableEntry<String>("Data Type", "-", "s"), new TableEntry<String>("Export", "-", "s"), new TableEntry<String>("Delete", "-", "s")); for (final Map.Entry<String, Set<Operations>> portalDataTypeEntry : portalDataTypes.entrySet()) { final String typeId = portalDataTypeEntry.getKey(); final Set<Operations> ops = portalDataTypeEntry.getValue(); tableFormatter.addRow( new TableEntry<String>(typeId, "-", "s"), new TableEntry<Boolean>(ops.contains(Operations.EXPORT), "-", "b"), new TableEntry<Boolean>(ops.contains(Operations.DELETE), "-", "b")); } tableFormatter.format(f); }
public void format(Formatter formatter) { // Write out table header this.formatRow(formatter, this.headerRow); // Write out separator row this.clearScratchBuilder(); this.scratchBuilder.append('-'); for (int column = 0; column < this.columnWidths.size(); column++) { if (column > 0) { this.scratchBuilder.append("-+-"); } final int width = this.columnWidths.get(column); for (int i = 0; i < width; i++) { this.scratchBuilder.append('-'); } } this.scratchBuilder.append("-%n"); formatter.format(this.scratchBuilder.toString()); // Write out rows for (final List<TableEntry<?>> row : this.rows) { this.formatRow(formatter, row); } }
private <T> int estimateEntryLength(TableEntry<T> entry) { clearScratchBuilder(); this.scratchFormatter.format(entry.getFormatString(), entry.getValue()); return this.scratchBuilder.length(); }
public void addRow(TableEntry<?> firstValue, TableEntry<?>... values) { Validate.notNull(firstValue); if (1 + values.length != this.columnWidths.size()) { throw new IllegalArgumentException( "Inconsistent column count. Expected " + this.columnWidths.size() + " but was " + (1 + values.length)); } final List<TableEntry<?>> row = new ArrayList<TableEntry<?>>(this.columnWidths.size()); updateColumnSize(row.size(), firstValue); row.add(firstValue); for (final TableEntry<?> value : values) { updateColumnSize(row.size(), value); row.add(value); } this.rows.add(row); }
private void updateColumnSize(int index, TableEntry<?> value) { final int valueLength = estimateEntryLength(value); if (this.columnWidths.size() == index) { this.columnWidths.add(valueLength); } else { this.columnWidths.set(index, Math.max(this.columnWidths.get(index), valueLength)); } }
public static void format(IPortalDataHandlerService dataHandlerService, Logger l) { final Formatter f = new Formatter(new AppendableLogger(l, LogLevel.INFO)); final Map<String, Set<Operations>> portalDataTypes = new TreeMap<String, Set<Operations>>(); final Iterable<IPortalDataType> exportPortalDataTypes = dataHandlerService.getExportPortalDataTypes(); addDataTypes(portalDataTypes, exportPortalDataTypes, Operations.EXPORT); final Iterable<IPortalDataType> deletePortalDataTypes = dataHandlerService.getDeletePortalDataTypes(); addDataTypes(portalDataTypes, deletePortalDataTypes, Operations.DELETE); final TableFormatter tableFormatter = new TableFormatter( new TableEntry<String>("Data Type", "-", "s"), new TableEntry<String>("Export", "-", "s"), new TableEntry<String>("Delete", "-", "s")); for (final Map.Entry<String, Set<Operations>> portalDataTypeEntry : portalDataTypes.entrySet()) { final String typeId = portalDataTypeEntry.getKey(); final Set<Operations> ops = portalDataTypeEntry.getValue(); tableFormatter.addRow( new TableEntry<String>(typeId, "-", "s"), new TableEntry<Boolean>(ops.contains(Operations.EXPORT), "-", "b"), new TableEntry<Boolean>(ops.contains(Operations.DELETE), "-", "b")); } tableFormatter.format(f); }
private <T> int estimateEntryLength(TableEntry<T> entry) { clearScratchBuilder(); this.scratchFormatter.format(entry.getFormatString(), entry.getValue()); return this.scratchBuilder.length(); }
public TableFormatter(Formatter f, TableEntry<?> firstHeading, TableEntry<?>... headings) { Validate.notNull(firstHeading); // Setup scratch objects used for formatting data this.scratchBuilder = new StringBuilder(); this.scratchFormatter = new Formatter(scratchBuilder, f != null ? f.locale() : null); this.columnWidths = new ArrayList<Integer>(1 + headings.length); this.headerRow = new ArrayList<TableEntry<?>>(1 + headings.length); this.updateColumnSize(0, firstHeading); this.headerRow.add(firstHeading); for (final TableEntry<?> heading : headings) { this.updateColumnSize(this.headerRow.size(), heading); this.headerRow.add(heading); } }
new TableFormatter( new TableEntry<String>("Data Type", "-", "s"), new TableEntry<String>("Export", "-", "s"), new TableEntry<String>("Delete", "-", "s")); tableFormatter.addRow( new TableEntry<String>("portlet-definition", "-", "s"), new TableEntry<Boolean>(true, "-", "b"), new TableEntry<Boolean>(true, "-", "b")); tableFormatter.addRow( new TableEntry<String>("portlet-type", "-", "s"), new TableEntry<Boolean>(true, "-", "b"), new TableEntry<Boolean>(true, "-", "b")); tableFormatter.addRow( new TableEntry<String>("entity", "-", "s"), new TableEntry<Boolean>(true, "-", "b"), tableFormatter.format(new Formatter(result));
public void addRow(TableEntry<?> firstValue, TableEntry<?>... values) { Validate.notNull(firstValue); if (1 + values.length != this.columnWidths.size()) { throw new IllegalArgumentException( "Inconsistent column count. Expected " + this.columnWidths.size() + " but was " + (1 + values.length)); } final List<TableEntry<?>> row = new ArrayList<TableEntry<?>>(this.columnWidths.size()); updateColumnSize(row.size(), firstValue); row.add(firstValue); for (final TableEntry<?> value : values) { updateColumnSize(row.size(), value); row.add(value); } this.rows.add(row); }