--- 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