--- a/java/sql-dk/src/info/globalcode/sql/dk/formatting/TabularFormatter.java Mon Dec 23 00:14:29 2013 +0100
+++ b/java/sql-dk/src/info/globalcode/sql/dk/formatting/TabularFormatter.java Mon Dec 23 11:50:24 2013 +0100
@@ -18,6 +18,7 @@
package info.globalcode.sql.dk.formatting;
import info.globalcode.sql.dk.ColorfulPrintWriter;
+import static info.globalcode.sql.dk.ColorfulPrintWriter.*;
/**
*
@@ -27,6 +28,7 @@
public static final String NAME = "tabular";
private ColorfulPrintWriter out;
+ private boolean firstResult = true;
public TabularFormatter(FormatterContext formatterContext) {
super(formatterContext);
@@ -34,14 +36,37 @@
}
@Override
+ public void writeStartResultSet() {
+ super.writeStartResultSet();
+ printResultSeparator();
+ }
+
+ @Override
+ public void writeColumnsHeader(ColumnsHeader header) {
+ super.writeColumnsHeader(header);
+
+ for (ColumnDescriptor cd : header.getColumnDescriptors()) {
+ out.print(TerminalStyle.Bright, cd.getLabel());
+ out.print(" (");
+ out.print(cd.getTypeName());
+ out.print(")");
+ if (!cd.isLastColumn()) {
+ out.print(TerminalColor.Green, " | ");
+ }
+ }
+ out.println();
+ out.flush();
+ }
+
+ @Override
public void writeColumnValue(Object value) {
super.writeColumnValue(value);
if (!isCurrentColumnFirst()) {
- out.print(ColorfulPrintWriter.TerminalColor.Green, " | ");
+ out.print(TerminalColor.Green, " | ");
}
-
- out.print(ColorfulPrintWriter.TerminalColor.Cyan, String.valueOf(value));
+
+ out.print(TerminalColor.Cyan, String.valueOf(value));
}
@Override
@@ -50,4 +75,40 @@
out.println();
out.flush();
}
+
+ @Override
+ public void writeEndResultSet() {
+ super.writeEndResultSet();
+ out.print(TerminalColor.Yellow, "Record count: ");
+ out.println(getCurrentRowCount());
+ out.flush();
+ }
+
+ @Override
+ public void writeStartUpdatesResult() {
+ super.writeStartUpdatesResult();
+ printResultSeparator();
+ }
+
+ @Override
+ public void writeUpdatedRowsCount(int updatedRowsCount) {
+ super.writeUpdatedRowsCount(updatedRowsCount);
+ out.print(TerminalColor.Red, "Updated records: ");
+ out.println(updatedRowsCount);
+ out.flush();
+ }
+
+ @Override
+ public void writeEndDatabase() {
+ super.writeEndDatabase();
+ out.flush();
+ }
+
+ private void printResultSeparator() {
+ if (firstResult) {
+ firstResult = false;
+ } else {
+ out.println();
+ }
+ }
}