package edu.sjtu.infosec.ismp.manager.SYSM.config.service.lm.dLog.impl; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.infosec.ismp.manager.rmi.sensor.SensorController; import edu.sjtu.infosec.ismp.manager.SYSM.config.dao.lm.dLog.PcSourceDao; import edu.sjtu.infosec.ismp.manager.SYSM.config.model.lm.dLog.Sensor; import edu.sjtu.infosec.ismp.manager.SYSM.config.service.lm.dLog.PcSourceService; import edu.sjtu.infosec.ismp.security.Domain; public class PcSourceServiceImpl implements PcSourceService { private PcSourceDao pcSourceDao; private SensorController pcController; public Sensor loadObject(String id) throws Exception { return pcSourceDao.loadObject(id); } public PcSourceDao getPcSourceDao() { return pcSourceDao; } public void setPcSourceDao(PcSourceDao pcSourceDao) { this.pcSourceDao = pcSourceDao; } public List<Sensor> getAllPcSource(Sensor sensor, List<Domain> domain, Integer pageNo, Integer pageRowNum) throws Exception { return pcSourceDao.getAllPcSource(sensor, domain, pageNo, pageRowNum); } public Integer getAllPcSourceCount(Sensor sensor, List<Domain> domain) throws Exception { return pcSourceDao.getAllPcSourceCount(sensor, domain); } public boolean updatePcSource(List<String> sourceIdList,String startCollectSwitch,String intervalCollectTime) throws Exception { Map<String,Long> sensorMap = new HashMap<String, Long>(); List<String> delSensorList = new ArrayList<String>(); for(String sourceId:sourceIdList){ Sensor sensor = this.loadObject(sourceId); if(intervalCollectTime!=null && intervalCollectTime!=""){ sensor.setIntervalCollectTime(Long.valueOf(intervalCollectTime)); } // if(startCollectSwitch!=null && startCollectSwitch!=""){ // sensor.setStartCollectSwitch(Boolean.valueOf(startCollectSwitch)); // }else{ // sensor.setStartCollectSwitch(true); // } if(sensor.getStartCollectSwitch()){ sensorMap.put(sensor.getSensorSequence(), sensor.getIntervalCollectTime()); }else{ delSensorList.add(sensor.getSensorSequence()); } // pcSourceDao.updatePcSource(sensor); } try{ pcController.addSensor(sensorMap); }catch (Exception e) { e.printStackTrace(); return false; } try{ for(String sensorSequence:delSensorList){ pcController.deleteSensor(sensorSequence); } }catch (Exception e) { e.printStackTrace(); return false; } return true; } public SensorController getPcController() { return pcController; } public void setPcController(SensorController pcController) { this.pcController = pcController; } }