diff -r ecd17aad1178 -r da1e38386d84 java/sql-dk/src/info/globalcode/sql/dk/formatting/AbstractFormatter.java --- 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 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