private Optional decodeEvent()

in kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/incremental/client/netty/MySQLBinlogEventPacketDecoder.java [148:175]


    private Optional<MySQLBaseBinlogEvent> decodeEvent(final MySQLBinlogEventHeader binlogEventHeader, final MySQLPacketPayload payload) {
        switch (MySQLBinlogEventType.valueOf(binlogEventHeader.getEventType()).orElse(MySQLBinlogEventType.UNKNOWN_EVENT)) {
            case ROTATE_EVENT:
                decodeRotateEvent(binlogEventHeader, payload);
                return Optional.empty();
            case FORMAT_DESCRIPTION_EVENT:
                decodeFormatDescriptionEvent(binlogEventHeader, payload);
                return Optional.empty();
            case TABLE_MAP_EVENT:
                decodeTableMapEvent(binlogEventHeader, payload);
                return Optional.empty();
            case WRITE_ROWS_EVENT_V1:
            case WRITE_ROWS_EVENT_V2:
                return Optional.of(decodeWriteRowsEventV2(binlogEventHeader, payload));
            case UPDATE_ROWS_EVENT_V1:
            case UPDATE_ROWS_EVENT_V2:
                return Optional.of(decodeUpdateRowsEventV2(binlogEventHeader, payload));
            case DELETE_ROWS_EVENT_V1:
            case DELETE_ROWS_EVENT_V2:
                return Optional.of(decodeDeleteRowsEventV2(binlogEventHeader, payload));
            case QUERY_EVENT:
                return Optional.of(decodeQueryEvent(binlogEventHeader, payload));
            case XID_EVENT:
                return Optional.of(decodeXidEvent(binlogEventHeader, payload));
            default:
                return Optional.of(decodePlaceholderEvent(binlogEventHeader, payload));
        }
    }