package me.xcoding.opencdc.binlog.event; import me.xcoding.opencdc.mysql.protocol.column.ColumnList; /** * <b> Rows Event </b> * </br> * <table> <tr align="center"> * <td> Event </td> <td> SQL Command </td> <td> rows Contents </td> * </tr><tr> * <td> WRITE_ROWS_EVENT </td> <td align="center"> INSERT </td> <td> the row data to insert </td> * </tr><tr> * <td> DELETE_ROWS_EVENT </td> <td align="center"> DELETE </td> <td> as much data as needed to identify a row </td> * </tr><tr> * <td> UPDATE_ROWS_EVENT </td> <td align="center"> UPDATE </td> <td> as much data as needed to identify a row + the data to change </td> * </tr> * </table> * * </br></br> * <ol> * <li>Version 0 </li> * </br>written form MySQL 5.1.0 to 5.1.15</br> * <li>Version 1 </li> * </br>written form MySQL 5.1.15 to 5.6.x</br> * <li>Version 2 </li> * </br>written form MySQL 5.6.x</br> * </ol> * * * * @author Teny Zh(zh.Teny.1@gmail.com) * @see http://dev.mysql.com/doc/internals/en/rows-event.html */ public abstract class RowsEvent extends Event { // header : protected long tableId; protected int flags; protected int extraDataLength; protected byte[] extraData; // body : protected int numberOfColumns; protected byte[] columnsPresent; protected byte[] columnsPresent2; protected byte[] nullBitmap; // rows : protected ColumnList columns1; // after protected ColumnList columns2; // before public long getTableId() { return tableId; } public int getFlags() { return flags; } public int getExtraDataLength() { return extraDataLength; } public byte[] getExtraData() { return extraData; } public int getNumberOfColumns() { return numberOfColumns; } public byte[] getColumnsPresent() { return columnsPresent; } public byte[] getNullBitmap() { return nullBitmap; } public ColumnList getColumns1() { return columns1; } public ColumnList getColumns2() { return columns2; } public RowsEvent setTableId(long tableId) { this.tableId = tableId; return this; } public RowsEvent setFlags(int flags) { this.flags = flags; return this; } public RowsEvent setExtraDataLength(int extraDataLength) { this.extraDataLength = extraDataLength; return this; } public RowsEvent setExtraData(byte[] extraData) { this.extraData = extraData; return this; } public RowsEvent setNumberOfColumns(int numberOfColumns) { this.numberOfColumns = numberOfColumns; return this; } public RowsEvent setColumnsPresent(byte[] columnsPresent) { this.columnsPresent = columnsPresent; return this; } public RowsEvent setNullBitmap(byte[] nullBitmap) { this.nullBitmap = nullBitmap; return this; } public RowsEvent setColumns1(ColumnList columns1) { this.columns1 = columns1; return this; } public RowsEvent setColumns2(ColumnList columns2) { this.columns2 = columns2; return this; } }