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; } }