diff -r 7e08730da258 -r 4a1864c3e867 java/sql-dk/src/info/globalcode/sql/dk/batch/BatchDecoder.java
--- a/java/sql-dk/src/info/globalcode/sql/dk/batch/BatchDecoder.java Mon Mar 04 17:06:42 2019 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-/**
- * SQL-DK
- * Copyright © 2014 František Kučera (frantovo.cz)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package info.globalcode.sql.dk.batch;
-
-import info.globalcode.sql.dk.Parameter;
-import info.globalcode.sql.dk.SQLCommand;
-import info.globalcode.sql.dk.SQLCommandNumbered;
-import java.io.DataInputStream;
-import java.io.InputStream;
-import static info.globalcode.sql.dk.batch.BatchConstants.*;
-import static info.globalcode.sql.dk.Functions.toHex;
-import info.globalcode.sql.dk.SQLType;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- *
- * @author Ing. František Kučera (frantovo.cz)
- */
-public class BatchDecoder {
-
- public Batch decode(InputStream in) throws BatchException {
- return new BatchFromStream(new DataInputStream(in));
- }
-
- private class BatchFromStream implements Batch {
-
- private DataInputStream in;
- private boolean hasNext;
-
- public BatchFromStream(DataInputStream in) throws BatchException {
- this.in = in;
- hasNext = verifyHeader();
- }
-
- @Override
- public boolean hasNext() throws BatchException {
- return hasNext;
- }
-
- @Override
- public SQLCommand next() throws BatchException {
- try {
- String sql = readNextString();
-
- int paramCount = in.readInt();
- List parameters = new ArrayList<>(paramCount);
-
- for (int i = 0; i < paramCount; i++) {
- SQLType type = SQLType.valueOf(in.readInt());
- String value = readNextString();
- parameters.add(new Parameter(value, type));
- }
-
- hasNext = verifyHeader();
-
- SQLCommand sqlCommand = new SQLCommandNumbered(sql, parameters);
- return sqlCommand;
- } catch (IOException e) {
- throw new BatchException("Unable to read batch", e);
- }
- }
-
- private String readNextString() throws IOException {
- byte[] buffer = new byte[in.readInt()];
- in.read(buffer);
- return new String(buffer, CHARSET);
- }
-
- /**
- * @return true if correct batch header was found | false if EOF was found
- * @throws BatchException if unexpected data was found (not batch header nor EOF)
- */
- private boolean verifyHeader() throws BatchException {
- try {
- byte[] buffer = new byte[BATCH_HEADER.length];
- int bytesRead = in.read(buffer);
-
- if (bytesRead == BATCH_HEADER.length && Arrays.equals(buffer, BATCH_HEADER)) {
- return true;
- } else if (bytesRead == -1) {
- return false;
- } else {
- throw new BatchException("This is not SQL-DK batch: " + toHex(buffer));
- }
- } catch (IOException e) {
- throw new BatchException("Unable to read batch header", e);
- }
- }
- }
-}