XML解析工具类

package com.alibaba.otter.canal.utils;

import com.alibaba.otter.canal.bo.FileUploadBO;
import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.common.xcontent.XContentFactory;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

/**
 * @author kaikai_zheng
 * @version 1.0.0
 * @className XmlContentUtil
 * @description //XML模板解析
 * @data 2020-07-13 15:01
 */
public class XmlContentUtil {
    /**
     * Log转化为ES标准数据
     *
     * @param object 要转化的实体类FileUploadBO
     * @return
     */
    public static XContentBuilder getXContentBuilder(Object object) {
        if (object.getClass().getName().contains("FileUploadBO")) {
            return getEsbMonitorXContentBuilder((FileUploadBO) object);
        }
        return null;
    }

    /**
     * FileUploadBO转化为ES标准数据
     *
     * @param fileUploadBO
     * @return
     */
    public static XContentBuilder getEsbMonitorXContentBuilder(FileUploadBO fileUploadBO) {
        XContentBuilder xContentBuilder = null;
        try {
            xContentBuilder = XContentFactory.jsonBuilder().startObject()// 标识开始设置值
                    .field("row_update_time", fileUploadBO.getRowUpdateTime())
                    .endObject();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return xContentBuilder;
    }

    /**
     * 生成ES标准数据
     *
     * @param clazz
     * @return
     * @throws IOException
     */
    @SuppressWarnings("rawtypes")
    public static XContentBuilder getXContentBuilderMapping(Class clazz) throws IOException {
        if (clazz.getName().contains("FileUploadBO")) {
            return XmlContentUtil.getEsbMonitorXContentBuilderMapping();
        }
        return null;
    }

    /**
     * 生成Monitor的ES标准数据模板
     *
     * @return
     * @throws IOException
     */
    public static XContentBuilder getEsbMonitorXContentBuilderMapping() throws IOException {
        Map<String, Object> keyword = new HashMap<String, Object>();
        keyword.put("type", "keyword");
        keyword.put("ignore_above", 256);
        XContentBuilder mapping = XContentFactory.jsonBuilder()
                .startObject()//标识开始设置值
                .startObject("row_update_time")
                .startObject("date").field("type", "date").startObject("fields").field("keyword", keyword).endObject().endObject()
                .endObject().endObject();
        return mapping;
    }

}

 

posted @ 2020-07-31 15:05  骑着蜗牛看海呀  阅读(467)  评论(0编辑  收藏  举报