Newer
Older
sink / src / main / java / org / flume / alarm / util / ResponseResolver.java
zhout on 2 Mar 2022 2 KB first commit
package org.flume.alarm.util;

import net.sf.json.JSONObject;
import org.flume.alarm.base.AbstractResponse;
import org.flume.alarm.base.DeviceTypeEnum;
import org.flume.alarm.resp.*;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.util.HashMap;
import java.util.Map;

/**
 * 设备响应消息解析
 * Created by lenovo on 2018/1/8.
 */

public class ResponseResolver {

    private static Map<String, AbstractResponse> abstractResponseHashMap = new HashMap<String, AbstractResponse>();

    static {
        abstractResponseHashMap.put(DeviceTypeEnum.Liquid.name(), new LiquidResponse());
        abstractResponseHashMap.put(DeviceTypeEnum.Well.name(), new WellResponse());
        abstractResponseHashMap.put(DeviceTypeEnum.WasteGas.name(), new WasteGasResponse());
        abstractResponseHashMap.put(DeviceTypeEnum.Methane.name(), new MethaneResponse());
        abstractResponseHashMap.put(DeviceTypeEnum.Noise.name(), new NoiseResponse());
        abstractResponseHashMap.put(DeviceTypeEnum.TempPressure.name(), new TempPressureResponse());
        abstractResponseHashMap.put(DeviceTypeEnum.TempHumi.name(), new TempHumiResponse());
//        abstractResponseHashMap.put(DeviceTypeEnum.Lamp.name(), new LampResponse());
//        abstractResponseHashMap.put(DeviceTypeEnum.Lamphouse.name(), new LampHouseResponse());
        abstractResponseHashMap.put(DeviceTypeEnum.WaterMeter.name(), new WaterMeterResponse());
        abstractResponseHashMap.put(DeviceTypeEnum.FireHydrant.name(), new FireHydrantResponse());
        abstractResponseHashMap.put(DeviceTypeEnum.MultiLeak.name(), new MultiLeakResponse());
        abstractResponseHashMap.put(DeviceTypeEnum.CorrRate.name(), new CorrRateResponse());
        abstractResponseHashMap.put(DeviceTypeEnum.CorrEnv.name(), new CorrEnvResponse());
        abstractResponseHashMap.put(DeviceTypeEnum.Concentrator.name(), new ConcentratorResponse());
        abstractResponseHashMap.put(DeviceTypeEnum.Dig.name(), new DigResponse());
        abstractResponseHashMap.put(DeviceTypeEnum.Locator.name(), new LocatorResponse());
        abstractResponseHashMap.put(DeviceTypeEnum.LG.name(), new MethaneResponse());
//        abstractResponseHashMap.put(DeviceTypeEnum.NoiseDig.name(), new LocatorResponse());
    }


    //event的具体处理
    public static AbstractResponse makeResponse(String content) {
        JSONObject json = JSONObject.fromObject(content);
        if (null == json) return null;
        AbstractResponse response = abstractResponseHashMap.get(json.getString("devType"));
        return response;
    }

}