属性转换器

来源:互联网 发布:c语言 面向对象 编辑:程序博客网 时间:2024/04/27 16:10
public class MergeHiConvertor {


    @SuppressWarnings("unchecked")
    public static MergeHi convert2MergeHi(MergeHiDO mergeHiDO) {
        if(null == mergeHiDO){
            return null;
        }
        MergeHi mergeHi = new MergeHi();
        //拷贝基本属性
        BeanUtils.copyProperties(mergeHiDO, mergeHi,
            new String[] { "readerType", "readerArgs", "writerType", "writerArgs", "callbackArgs", "properties","locked","status" });
        if (null != mergeHiDO.getReaderType()) {
            mergeHi.setReaderType(ReaderEnum.valueOf(mergeHiDO.getReaderType()));
            mergeHi.setReaderArgs((PluginArgs) JSON.parseObject(mergeHiDO.getReaderArgs(), mergeHi
                .getReaderType().getPluginArgsClass()));
        }
        if (null != mergeHiDO.getWriterType()) {
            mergeHi.setWriterType(WriterEnum.valueOf(mergeHiDO.getWriterType()));
            mergeHi.setWriterArgs((PluginArgs) JSON.parseObject(mergeHiDO.getWriterArgs(), mergeHi.getWriterType().getPluginArgsClass()));
        }
        if(null != mergeHiDO.getStatus()){
            mergeHi.setStatus(MergeStatusEnum.valueOf(mergeHiDO.getStatus()));
        }
        mergeHi.setCallbackArgs(JSON.parseObject(mergeHiDO.getCallbackArgs(), Map.class));
        mergeHi.setProperties(JSON.parseObject(mergeHiDO.getProperties(), Map.class));
        mergeHi.setLocked(mergeHiDO.getLocked() > 0);
        return mergeHi;
    }
    public static MergeHiDO convert2MergeHiDO(MergeHi mergeHi) {
        if(null == mergeHi){
            return null;
        }
        MergeHiDO mergeHiDO = new MergeHiDO();
        //拷贝基本属性
        BeanUtils.copyProperties(mergeHi, mergeHiDO,
            new String[] { "readerType", "readerArgs", "writerType", "writerArgs", "callbackArgs", "properties","locked","status" });
        if (null != mergeHi.getReaderType()) {
            mergeHiDO.setReaderType(mergeHi.getReaderType().getValue());
        }
        mergeHiDO.setReaderArgs(JSON.toJSONString(mergeHi.getReaderArgs()));


        if (null != mergeHi.getWriterType()) {
            mergeHiDO.setWriterType(mergeHi.getWriterType().getValue());
        }
        
        mergeHiDO.setWriterArgs(JSON.toJSONString(mergeHi.getWriterArgs()));
       
        if(null != mergeHi.getStatus()){
            mergeHiDO.setStatus(mergeHi.getStatus().getCode());
        }
        mergeHiDO.setCallbackArgs(JSON.toJSONString(mergeHi.getCallbackArgs()));
        mergeHiDO.setProperties(JSON.toJSONString(mergeHi.getProperties()));
        mergeHiDO.setLocked(mergeHi.isLocked() ? 1 : 0);
        return mergeHiDO;
    }
}
0 0