Newer
Older
casic-metering-biz-xichang / casic-metering-common / src / main / java / com / casic / missiles / utils / ConvertUtils.java
wangpeng on 4 Nov 8 KB V2.2.0
package com.casic.missiles.utils;

import cn.hutool.core.bean.BeanUtil;
import com.casic.missiles.model.business.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.CollectionUtils;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;

/**
 * @Description: 工具类-转换pojo或list
 * @Author: wangpeng
 * @Date: 2022/11/26 14:01
 */
public class ConvertUtils {
    private static Logger logger = LoggerFactory.getLogger(ConvertUtils.class);

    public ConvertUtils() {
    }

    public static <T> T sourceToTarget(Object source, Class<T> target) {
        if (source == null) {
            return null;
        } else {
            T targetObject = null;
            try {
                targetObject = target.newInstance();
                BeanUtil.copyProperties(source, targetObject);
            } catch (Exception var4) {
                logger.error("convert error ", var4);
            }

            return targetObject;
        }
    }

    public static <T> List<T> sourceToTarget(Collection<?> sourceList, Class<T> target) {
        if (sourceList == null) {
            return null;
        } else {
            ArrayList targetList = new ArrayList(sourceList.size());
            try {
                Iterator var3 = sourceList.iterator();
                while(var3.hasNext()) {
                    Object source = var3.next();
                    T targetObject = target.newInstance();
                    BeanUtil.copyProperties(source, targetObject);
                    targetList.add(targetObject);
                }
            } catch (Exception var6) {
                logger.error("convert error ", var6);
            }

            return targetList;
        }
    }

    /**
     * 深拷贝,拷贝Object中List
     */
    public static BizBusinessDeviceMeasureApproval sourceToTargetDeep(BizBusinessDeviceMeasureApproval measureApproval, Class<BizBusinessDeviceMeasureApproval> target) {
        if (measureApproval == null) {
            return null;
        } else {
            BizBusinessDeviceMeasureApproval targetObject = null;
            try {
                targetObject = target.newInstance();
                BeanUtil.copyProperties(measureApproval, targetObject);
                if (!CollectionUtils.isEmpty(measureApproval.getMeasureDataCalibratorList())) {
                    List<BizBusinessDeviceMeasureDataCalibrator> targetList = sourceToTarget(measureApproval.getMeasureDataCalibratorList(), BizBusinessDeviceMeasureDataCalibrator.class);
                    targetObject.setMeasureDataCalibratorList(targetList);
                } else if (!CollectionUtils.isEmpty(measureApproval.getMeasureDataOscilloscopeList())) {
                    List<BizBusinessDeviceMeasureDataOscilloscope> targetList = sourceToTarget(measureApproval.getMeasureDataOscilloscopeList(), BizBusinessDeviceMeasureDataOscilloscope.class);
                    targetObject.setMeasureDataOscilloscopeList(targetList);
                } else if (!CollectionUtils.isEmpty(measureApproval.getMeasureDataPointMeterList())) {
                    List<BizBusinessDeviceMeasureDataPointMeter> targetList = sourceToTarget(measureApproval.getMeasureDataPointMeterList(), BizBusinessDeviceMeasureDataPointMeter.class);
                    targetObject.setMeasureDataPointMeterList(targetList);
                } else if (!CollectionUtils.isEmpty(measureApproval.getMeasureDataCesiumAtomList())) {
                    List<BizBusinessDeviceMeasureDataCesiumAtom> targetList = sourceToTarget(measureApproval.getMeasureDataCesiumAtomList(), BizBusinessDeviceMeasureDataCesiumAtom.class);
                    targetObject.setMeasureDataCesiumAtomList(targetList);
                } else if (!CollectionUtils.isEmpty(measureApproval.getMeasureDataDcPowerList())) {
                    List<BizBusinessDeviceMeasureDataDcPower> targetList = sourceToTarget(measureApproval.getMeasureDataDcPowerList(), BizBusinessDeviceMeasureDataDcPower.class);
                    targetObject.setMeasureDataDcPowerList(targetList);
                } else if (!CollectionUtils.isEmpty(measureApproval.getMeasureDataElectricalSafetyList())) {
                    List<BizBusinessDeviceMeasureDataElectricalSafety> targetList = sourceToTarget(measureApproval.getMeasureDataElectricalSafetyList(), BizBusinessDeviceMeasureDataElectricalSafety.class);
                    targetObject.setMeasureDataElectricalSafetyList(targetList);
                } else if (!CollectionUtils.isEmpty(measureApproval.getMeasureDataETwoList())) {
                    List<BizBusinessDeviceMeasureDataETwo> targetList = sourceToTarget(measureApproval.getMeasureDataETwoList(), BizBusinessDeviceMeasureDataETwo.class);
                    targetObject.setMeasureDataETwoList(targetList);
                } else if (!CollectionUtils.isEmpty(measureApproval.getMeasureDataLowPowerList())) {
                    List<BizBusinessDeviceMeasureDataLowPower> targetList = sourceToTarget(measureApproval.getMeasureDataLowPowerList(), BizBusinessDeviceMeasureDataLowPower.class);
                    targetObject.setMeasureDataLowPowerList(targetList);
                } else if (!CollectionUtils.isEmpty(measureApproval.getMeasureDataMicrowaveAttenuationList())) {
                    List<BizBusinessDeviceMeasureDataMicrowaveAttenuation> targetList = sourceToTarget(measureApproval.getMeasureDataMicrowaveAttenuationList(), BizBusinessDeviceMeasureDataMicrowaveAttenuation.class);
                    targetObject.setMeasureDataMicrowaveAttenuationList(targetList);
                } else if (!CollectionUtils.isEmpty(measureApproval.getMeasureDataPistonGaugeList())) {
                    List<BizBusinessDeviceMeasureDataPistonGauge> targetList = sourceToTarget(measureApproval.getMeasureDataPistonGaugeList(), BizBusinessDeviceMeasureDataPistonGauge.class);
                    targetObject.setMeasureDataPistonGaugeList(targetList);
                } else if (!CollectionUtils.isEmpty(measureApproval.getMeasureDataResistanceThermometerList())) {
                    List<BizBusinessDeviceMeasureDataResistanceThermometer> targetList = sourceToTarget(measureApproval.getMeasureDataResistanceThermometerList(), BizBusinessDeviceMeasureDataResistanceThermometer.class);
                    targetObject.setMeasureDataResistanceThermometerList(targetList);
                } else if (!CollectionUtils.isEmpty(measureApproval.getMeasureDataSafetyValueList())) {
                    List<BizBusinessDeviceMeasureDataSafetyValue> targetList = sourceToTarget(measureApproval.getMeasureDataSafetyValueList(), BizBusinessDeviceMeasureDataSafetyValue.class);
                    targetObject.setMeasureDataSafetyValueList(targetList);
                } else if (!CollectionUtils.isEmpty(measureApproval.getMeasureDataSignalGeneratorList())) {
                    List<BizBusinessDeviceMeasureDataSignalGenerator> targetList = sourceToTarget(measureApproval.getMeasureDataSignalGeneratorList(), BizBusinessDeviceMeasureDataSignalGenerator.class);
                    targetObject.setMeasureDataSignalGeneratorList(targetList);
                } else if (!CollectionUtils.isEmpty(measureApproval.getMeasureDataSParamList())) {
                    List<BizBusinessDeviceMeasureDataSParam> targetList = sourceToTarget(measureApproval.getMeasureDataSParamList(), BizBusinessDeviceMeasureDataSParam.class);
                    targetObject.setMeasureDataSParamList(targetList);
                } else if (!CollectionUtils.isEmpty(measureApproval.getMeasureDataSpectrumAnalyzerList())) {
                    List<BizBusinessDeviceMeasureDataSpectrumAnalyzer> targetList = sourceToTarget(measureApproval.getMeasureDataSpectrumAnalyzerList(), BizBusinessDeviceMeasureDataSpectrumAnalyzer.class);
                    targetObject.setMeasureDataSpectrumAnalyzerList(targetList);
                } else if (!CollectionUtils.isEmpty(measureApproval.getMeasureDataLowFrequencySignalList())) {
                    List<BizBusinessDeviceMeasureDataLowFrequencySignal> targetList = sourceToTarget(measureApproval.getMeasureDataLowFrequencySignalList(), BizBusinessDeviceMeasureDataLowFrequencySignal.class);
                    targetObject.setMeasureDataLowFrequencySignalList(targetList);
                }
            } catch (Exception var4) {
                logger.error("convert error ", var4);
            }
            return targetObject;
        }
    }
}