Formatter: one more level: writeStartBatch() + writeEndBatch() which allows multiple databases on output v_0
authorFrantišek Kučera <franta-hg@frantovo.cz>
Sat, 28 Dec 2013 20:24:51 +0100
branchv_0
changeset 91 43e8d52091d5
parent 90 ce2b7576ab67
child 92 1399ac70a5bd
Formatter: one more level: writeStartBatch() + writeEndBatch() which allows multiple databases on output
java/sql-dk/src/info/globalcode/sql/dk/DatabaseConnection.java
java/sql-dk/src/info/globalcode/sql/dk/InfoLister.java
java/sql-dk/src/info/globalcode/sql/dk/formatting/AbstractFormatter.java
java/sql-dk/src/info/globalcode/sql/dk/formatting/Formatter.java
--- a/java/sql-dk/src/info/globalcode/sql/dk/DatabaseConnection.java	Sat Dec 28 19:54:03 2013 +0100
+++ b/java/sql-dk/src/info/globalcode/sql/dk/DatabaseConnection.java	Sat Dec 28 20:24:51 2013 +0100
@@ -47,17 +47,21 @@
 	}
 
 	public void executeQuery(SQLCommand sqlCommand, Formatter formatter) throws SQLException {
+		formatter.writeStartBatch();
 		formatter.writeStartDatabase(databaseDefinition);
 		processCommand(sqlCommand, formatter);
 		formatter.writeEndDatabase();
+		formatter.writeEndBatch();
 	}
 
 	public void executeBatch(Batch batch, Formatter formatter) throws SQLException {
+		formatter.writeStartBatch();
 		formatter.writeStartDatabase(databaseDefinition);
 		while (batch.hasNext()) {
 			processCommand(batch.next(), formatter);
 		}
 		formatter.writeEndDatabase();
+		formatter.writeEndBatch();
 	}
 
 	private void processCommand(SQLCommand sqlCommand, Formatter formatter) throws SQLException {
--- a/java/sql-dk/src/info/globalcode/sql/dk/InfoLister.java	Sat Dec 28 19:54:03 2013 +0100
+++ b/java/sql-dk/src/info/globalcode/sql/dk/InfoLister.java	Sat Dec 28 20:24:51 2013 +0100
@@ -67,6 +67,7 @@
 				case FORMATTERS:
 				case TYPES:
 					formatter = getFormatter();
+					formatter.writeStartBatch();
 					formatter.writeStartDatabase(new DatabaseDefinition());
 			}
 		}
@@ -77,6 +78,7 @@
 
 		if (formatter != null) {
 			formatter.writeEndDatabase();
+			formatter.writeEndBatch();
 		}
 	}
 
--- a/java/sql-dk/src/info/globalcode/sql/dk/formatting/AbstractFormatter.java	Sat Dec 28 19:54:03 2013 +0100
+++ b/java/sql-dk/src/info/globalcode/sql/dk/formatting/AbstractFormatter.java	Sat Dec 28 20:24:51 2013 +0100
@@ -44,21 +44,23 @@
 
 	/*
 	 * root
-	 * .database
-	 * ..resultSet
-	 * ...@query
-	 * ...@parameters
-	 * ...@columnsHeader
-	 * ...row
-	 * ....@columnValue
-	 * ..updatesResult
-	 * ...@query
-	 * ...@parameters
-	 * ...@updatedRowsCount
+	 * .batch
+	 * ..database
+	 * ...resultSet
+	 * ....@query
+	 * ....@parameters
+	 * ....@columnsHeader
+	 * ....row
+	 * .....@columnValue
+	 * ...updatesResult
+	 * ....@query
+	 * ....@parameters
+	 * ....@updatedRowsCount
 	 */
 	protected enum State {
 
 		ROOT,
+		BATCH,
 		DATABASE,
 		RESULT_SET,
 		ROW,
@@ -120,13 +122,23 @@
 	}
 
 	@Override
+	public void writeStartBatch() {
+		pushState(State.BATCH, EnumSet.of(State.ROOT));
+	}
+
+	@Override
+	public void writeEndBatch() {
+		popState(EnumSet.of(State.ROOT));
+	}
+
+	@Override
 	public void writeStartDatabase(DatabaseDefinition databaseDefinition) {
-		pushState(State.DATABASE, EnumSet.of(State.ROOT));
+		pushState(State.DATABASE, EnumSet.of(State.BATCH));
 	}
 
 	@Override
 	public void writeEndDatabase() {
-		popState(EnumSet.of(State.ROOT));
+		popState(EnumSet.of(State.BATCH));
 	}
 
 	@Override
--- a/java/sql-dk/src/info/globalcode/sql/dk/formatting/Formatter.java	Sat Dec 28 19:54:03 2013 +0100
+++ b/java/sql-dk/src/info/globalcode/sql/dk/formatting/Formatter.java	Sat Dec 28 20:24:51 2013 +0100
@@ -27,6 +27,8 @@
  */
 public interface Formatter {
 
+	void writeStartBatch();
+	
 	void writeStartDatabase(DatabaseDefinition databaseDefinition);
 
 	void writeEndDatabase();
@@ -52,4 +54,6 @@
 	void writeUpdatedRowsCount(int updatedRowsCount);
 
 	void writeEndUpdatesResult();
+	
+	void writeEndBatch();
 }