java/sql-dk/src/info/globalcode/sql/dk/formatting/AbstractFormatter.java
branchv_0
changeset 142 da1e38386d84
parent 101 97b0d9069133
child 155 eb3676c6929b
--- a/java/sql-dk/src/info/globalcode/sql/dk/formatting/AbstractFormatter.java	Tue Jan 07 21:53:24 2014 +0100
+++ b/java/sql-dk/src/info/globalcode/sql/dk/formatting/AbstractFormatter.java	Tue Jan 07 21:54:59 2014 +0100
@@ -46,25 +46,22 @@
 	 * root
 	 * .batch
 	 * ..database
-	 * ...resultSet
+	 * ...statement
 	 * ....@query
 	 * ....@parameters
-	 * ....@columnsHeader
-	 * ....row
-	 * .....@columnValue
-	 * ...updatesResult
-	 * ....@query
-	 * ....@parameters
-	 * ....@updatedRowsCount
+	 * ....resultSet
+	 * .....row
+	 * ......@columnValue
+	 * ....@updatesResult
 	 */
 	protected enum State {
 
 		ROOT,
 		BATCH,
 		DATABASE,
+		STATEMENT,
 		RESULT_SET,
-		ROW,
-		UPDATES_RESULT
+		ROW
 	}
 
 	/**
@@ -142,20 +139,31 @@
 	}
 
 	@Override
-	public void writeStartResultSet() {
-		pushState(State.RESULT_SET, EnumSet.of(State.DATABASE));
+	public void writeStartStatement() {
+		pushState(State.STATEMENT, EnumSet.of(State.DATABASE));
+	}
+
+	@Override
+	public void writeEndStatement() {
+		popState(EnumSet.of(State.DATABASE));
+	}
+
+	@Override
+	public void writeStartResultSet(ColumnsHeader header) {
+		pushState(State.RESULT_SET, EnumSet.of(State.STATEMENT));
 		currentRowCount = 0;
+		currentColumnsHeader = header;
 	}
 
 	@Override
 	public void writeEndResultSet() {
-		popState(EnumSet.of(State.DATABASE));
+		popState(EnumSet.of(State.STATEMENT));
 		currentColumnsHeader = null;
 	}
 
 	@Override
 	public void writeQuery(String sql) {
-		peekState(EnumSet.of(State.RESULT_SET, State.UPDATES_RESULT));
+		peekState(EnumSet.of(State.STATEMENT));
 
 		if (currentColumnsHeader == null) {
 			currentQuery = sql;
@@ -166,7 +174,7 @@
 
 	@Override
 	public void writeParameters(List<? extends Parameter> parameters) {
-		peekState(EnumSet.of(State.RESULT_SET, State.UPDATES_RESULT));
+		peekState(EnumSet.of(State.STATEMENT));
 
 		if (currentColumnsHeader != null) {
 			throw new IllegalStateException("Parameters '" + parameters + "' must be set before columns header – was already set: " + currentColumnsHeader);
@@ -178,17 +186,6 @@
 	}
 
 	@Override
-	public void writeColumnsHeader(ColumnsHeader header) {
-		peekState(EnumSet.of(State.RESULT_SET));
-
-		if (currentColumnsHeader == null) {
-			currentColumnsHeader = header;
-		} else {
-			throw new IllegalStateException("Columns header can be set only once per result set – was already set: " + currentColumnsHeader);
-		}
-	}
-
-	@Override
 	public void writeStartRow() {
 		pushState(State.ROW, EnumSet.of(State.RESULT_SET));
 		currentColumnsCount = 0;
@@ -212,19 +209,8 @@
 	}
 
 	@Override
-	public void writeStartUpdatesResult() {
-		pushState(State.UPDATES_RESULT, EnumSet.of(State.DATABASE));
-	}
-
-	@Override
-	public void writeEndUpdatesResult() {
-		popState(EnumSet.of(State.DATABASE));
-		currentColumnsHeader = null;
-	}
-
-	@Override
-	public void writeUpdatedRowsCount(int updatedRowsCount) {
-		peekState(EnumSet.of(State.UPDATES_RESULT));
+	public void writeUpdatesResult(int updatedRowsCount) {
+		peekState(EnumSet.of(State.STATEMENT));
 	}
 
 	@Override