package DBProxy.MySQL.Protocol;
import java.util.ArrayList;
public class ResultSet {
public long sequenceId = 1;
public static long characterSet = 0;
public ArrayList<Column> columns = new ArrayList<>();
public ArrayList<Row> rows = new ArrayList<>();
public ArrayList<byte[]> toPackets() {
ArrayList<byte[]> packets = new ArrayList<>();
long maxRowSize = 0;
for (Column col: this.columns) {
long size = col.toPacket().length;
if (size > maxRowSize)
maxRowSize = size;
}
maxRowSize = 0;
ColCount colCount = new ColCount();
colCount.sequenceId = this.sequenceId;
this.sequenceId++;
colCount.colCount = this.columns.size();
packets.add(colCount.toPacket());
for (Column col: this.columns) {
col.sequenceId = this.sequenceId;
col.columnLength = maxRowSize;
this.sequenceId++;
packets.add(col.toPacket());
}
EOF eof = new EOF();
eof.sequenceId = this.sequenceId;
this.sequenceId++;
packets.add(eof.toPacket());
for (Row row: this.rows) {
row.sequenceId = this.sequenceId;
this.sequenceId++;
packets.add(row.toPacket());
}
eof = new EOF();
eof.sequenceId = this.sequenceId;
this.sequenceId++;
packets.add(eof.toPacket());
return packets;
}
public void addColumn(Column column) {
this.columns.add(column);
}
public void addRow(Row row) {
this.rows.add(row);
}
}