package org.infosec.ismp.agent.syslog.dao; import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.infosec.ismp.agent.syslog.model.SyslogParserConfig; import org.infosec.ismp.agent.syslog.model.SyslogParserType; import org.infosec.ismp.model.syslog.UeiMatch; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import org.springside.modules.orm.hibernate.HibernateDao; /** * @author guoxianwei * @date 2010-9-20 下午01:39:07 * */ @Component @Transactional public class SyslogDaoImpl extends HibernateDao<SyslogParserConfig,Integer> implements SyslogDao { @SuppressWarnings("unchecked") @Override public List<SyslogParserConfig> loadAllUeiMatch() { List<SyslogParserConfig> list = find(" from SyslogParserConfig "); if(list.isEmpty()) list = Collections.emptyList(); return new ArrayList(list); } @Override public boolean hasUeiMatch(UeiMatch ueiMatch) { if (findSyslogParserConfig(ueiMatch.getSyslogType(),ueiMatch.getIpAddr())!=null) { return true; }else{ return false; } } private SyslogParserConfig findSyslogParserConfig(String type,String ipAddr){ List<SyslogParserConfig> list = find(" from SyslogParserConfig s where s.type = ? and s.ipAddr = ? ", new Object[] { type,ipAddr}); if (list != null && !list.isEmpty()) { return list.get(0); } return null; } @Override public void deleteUeiMatch(UeiMatch ueiMatch) { SyslogParserConfig parserConfig = findSyslogParserConfig(ueiMatch.getSyslogType(),ueiMatch.getIpAddr()); if(parserConfig != null){ delete(parserConfig); } } @Override public void saveUeiMatch(UeiMatch ueiMatch) { if(!hasUeiMatch(ueiMatch)){ SyslogParserConfig parserConfig = new SyslogParserConfig(); parserConfig.setIpAddr(ueiMatch.getIpAddr()); parserConfig.setType(ueiMatch.getSyslogType()); parserConfig.setSrcId(ueiMatch.getSyslogSrcId()); parserConfig.setDomainId(ueiMatch.getDomainId()); save(parserConfig); } } @SuppressWarnings("unchecked") @Override public List<SyslogParserType> loadAllParserTypes() { List<SyslogParserType> list = find(" from SyslogParserType s "); if(list.isEmpty()) list = Collections.emptyList(); return new ArrayList(list); } }