public Map toMap()

in rocketmq-mysql/src/main/java/org/apache/rocketmq/mysql/binlog/DataRow.java [42:75]


    public Map toMap() {

        try {
            if (table.getColList().size() == row.length) {
                Map<String, Object> dataMap = new HashMap<>();
                List<String> keyList = table.getColList();
                List<ColumnParser> parserList = table.getParserList();

                for (int i = 0; i < keyList.size(); i++) {
                    Object value = row[i];
                    ColumnParser parser = parserList.get(i);
                    dataMap.put(keyList.get(i), parser.getValue(value));
                }

                Map<String, Object> map = new HashMap<>();
                map.put("database", table.getDatabase());
                map.put("table", table.getName());
                map.put("type", type);
                map.put("data", dataMap);

                return map;
            } else {
                logger.error("Table schema changed,discard data: {} - {}, {}  {}",
                    table.getDatabase().toUpperCase(), table.getName().toUpperCase(), type, row.toString());

                return null;
            }
        } catch (Exception e) {
            logger.error("Row parse error,discard data: {} - {}, {}  {}",
                table.getDatabase().toUpperCase(), table.getName().toUpperCase(), type, row.toString());
        }

        return null;
    }