private static void row(final StringBuilder sb, final int[] maxWidths, final Row row) { int i = 0; for (int width : maxWidths) { String value = row.getString(i++); sb.append("| "); if (value != null) { sb.append(value); sb.append(repeat(width - value.length(), ' ')); } else { sb.append(NULL); sb.append(repeat(width - NULL_SIZE, ' ')); } sb.append(" "); } sb.append("|"); sb.append("\n"); }
private static int[] maximumWidths(final TabularResult result) { HeaderDefinition headerDefinition = result.getHeaderDefinition(); int[] maxWidths = new int[headerDefinition.size()]; int count = 0; for (String columnName : headerDefinition.getColumnNames()) { maxWidths[count++] = columnName.length(); } Iterator<Row> iterator = result.iterator(); while (iterator.hasNext()) { Row row = iterator.next(); for (int i = 0; i < row.size(); i++) { String columnValue = row.getString(i); if (columnValue != null) { maxWidths[i] = Math.max(maxWidths[i], columnValue.length()); } else { maxWidths[i] = Math.max(maxWidths[i], NULL_SIZE); } } } return maxWidths; } }
@Test public void runAccessorTests() { HeaderDefinition headerDefinition1 = HeaderDefinition.of("A", "B", "C", "D"); HeaderDefinition headerDefinition2 = HeaderDefinition.of("A", "B", "C", "D"); Row row1 = Row.of(headerDefinition1, new String[] {"Jim", "Miranda", "1.2", "2009-09-13" }); Row row3 = Row.of(headerDefinition2, new String[] {"Jim", "Miranda", "Elaine", "Kostas" }); TabularResult tr1 = TabularResult.of(headerDefinition1, Arrays.asList(row1, row3)); Assert.assertEquals(tr1.get(0).getString(0), "Jim"); Assert.assertEquals(tr1.get(0).getString(1), "Miranda"); Assert.assertEquals(tr1.get(0).getString(2), "1.2"); Assert.assertEquals(tr1.get(0).getDouble(2), 1.2d, 1e-14); Assert.assertEquals(tr1.get(0).getString(3), "2009-09-13"); Assert.assertEquals(tr1.get(0).getLocalDate(3), LocalDate.of(2009, 9, 13)); Assert.assertEquals(tr1.get(0).getString("A"), "Jim"); Assert.assertEquals(tr1.get(0).getString("B"), "Miranda"); Assert.assertEquals(tr1.get(0).getString("C"), "1.2"); Assert.assertEquals(tr1.get(0).getDouble("C"), 1.2d, 1e-14); Assert.assertEquals(tr1.get(0).getString("D"), "2009-09-13"); Assert.assertEquals(tr1.get(0).getLocalDate("D"), LocalDate.of(2009, 9, 13)); }
@Test public void runAccessorTests() { HeaderDefinition headerDefinition1 = HeaderDefinition.of("A", "B", "C", "D"); HeaderDefinition headerDefinition2 = HeaderDefinition.of("A", "B", "C", "D"); Row row1 = Row.of(headerDefinition1, new String[] {"Jim", "Miranda", "1.2", "2009-09-13" }); Row row3 = Row.of(headerDefinition2, new String[] {"Jim", "Miranda", "Elaine", "Kostas" }); TabularResult tr1 = TabularResult.of(headerDefinition1, Arrays.asList(row1, row3)); Assert.assertEquals(tr1.get(0).getString(0), "Jim"); Assert.assertEquals(tr1.get(0).getString(1), "Miranda"); Assert.assertEquals(tr1.get(0).getString(2), "1.2"); Assert.assertEquals(tr1.get(0).getDouble(2), 1.2d, 1e-14); Assert.assertEquals(tr1.get(0).getString(3), "2009-09-13"); Assert.assertEquals(tr1.get(0).getLocalDate(3), LocalDate.of(2009, 9, 13)); Assert.assertEquals(tr1.get(0).getString("A"), "Jim"); Assert.assertEquals(tr1.get(0).getString("B"), "Miranda"); Assert.assertEquals(tr1.get(0).getString("C"), "1.2"); Assert.assertEquals(tr1.get(0).getDouble("C"), 1.2d, 1e-14); Assert.assertEquals(tr1.get(0).getString("D"), "2009-09-13"); Assert.assertEquals(tr1.get(0).getLocalDate("D"), LocalDate.of(2009, 9, 13)); }