equal
deleted
inserted
replaced
36 public TabularWrappingFormatter(FormatterContext formatterContext) { |
36 public TabularWrappingFormatter(FormatterContext formatterContext) { |
37 super(formatterContext); |
37 super(formatterContext); |
38 } |
38 } |
39 |
39 |
40 @Override |
40 @Override |
41 public void writeColumnsHeader(ColumnsHeader header) { |
41 public void writeStartResultSet(ColumnsHeader header) { |
42 super.writeColumnsHeader(header); |
42 super.writeStartResultSet(header); |
43 currentRow = new ArrayList<>(header.getColumnCount()); |
43 currentRow = new ArrayList<>(header.getColumnCount()); |
44 } |
44 } |
45 |
45 |
46 @Override |
46 @Override |
47 protected void writeColumnValueInternal(Object value) { |
47 protected void writeColumnValueInternal(Object value) { |
48 boolean rightAlign = value instanceof Number || value instanceof Boolean; |
48 boolean rightAlign = value instanceof Number || value instanceof Boolean; |
49 String valueString = String.valueOf(value); |
49 String valueString = String.valueOf(value); |
50 int columnWidth = getColumnWidth(getCurrentColumnsCount()) - 1; // -1 = space for new line symbol |
50 int columnWidth = getColumnWidth(getCurrentColumnsCount()) - 1; // -1 = space for new line symbol |
51 currentRow.add(split(valueString, columnWidth, rightAlign)); |
51 currentRow.add(wrapLines(valueString, columnWidth, rightAlign)); |
52 } |
52 } |
53 |
53 |
54 @Override |
54 @Override |
55 public void writeEndRow() { |
55 public void writeEndRow() { |
56 super.writeEndRow(); |
56 super.writeEndRow(); |
97 @Override |
97 @Override |
98 public void writeEndRowInternal() { |
98 public void writeEndRowInternal() { |
99 // already done – wrapped row ends |
99 // already done – wrapped row ends |
100 } |
100 } |
101 |
101 |
102 private static String[] split(String s, int width, boolean rightAlign) { |
102 private static String[] wrapLines(String s, int width, boolean rightAlign) { |
103 String[] array = new String[(s.length() - 1) / width + 1]; |
103 String[] array = new String[(s.length() - 1) / width + 1]; |
104 for (int i = 0; i < array.length; i++) { |
104 for (int i = 0; i < array.length; i++) { |
105 if (i == array.length - 1) { |
105 if (i == array.length - 1) { |
106 String part = s.substring(i * width, s.length()); |
106 String part = s.substring(i * width, s.length()); |
107 array[i] = rightAlign ? lpad(part, width) : rpad(part, width); |
107 array[i] = rightAlign ? lpad(part, width) : rpad(part, width); |