package org.infosec.ismp.manager.winsensor.dao.impl;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.hibernate.Criteria;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.infosec.ismp.manager.winsensor.dao.ManagerWinsensorDeviceDao;
import org.infosec.ismp.manager.winsensor.entity.ManagerWinsensorDeviceBO;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
/**
* @author Rocky
* @version create time: Dec 23, 2010 4:26:43 PM
*
*/
public class ManagerWinsensorDeviceDaoImpl extends HibernateDaoSupport implements ManagerWinsensorDeviceDao {
@Override
public void addDevice(ManagerWinsensorDeviceBO device) {
getHibernateTemplate().save(device);
}
@Override
public void updateDevice(ManagerWinsensorDeviceBO device) {
getHibernateTemplate().update(device);
}
@Override
public void deleteDevice(ManagerWinsensorDeviceBO device) {
getHibernateTemplate().delete(device);
}
@SuppressWarnings("unchecked")
@Override
public ManagerWinsensorDeviceBO findDeviceBySensorId(String sensorId) {
if (StringUtils.isBlank(sensorId)) {
return null;
}
Criteria criteria = getSession().createCriteria(ManagerWinsensorDeviceBO.class);
criteria.add(Restrictions.eq("sensorId", sensorId));
criteria.addOrder(Order.desc("registerTime"));
List<ManagerWinsensorDeviceBO> devices = criteria.list();
return (devices.size() > 0) ? devices.get(0) : null;
}
@SuppressWarnings("unchecked")
@Override
public ManagerWinsensorDeviceBO findDeviceByNodeId(String nodeId) {
if (StringUtils.isBlank(nodeId)) {
return null;
}
Criteria criteria = getSession().createCriteria(ManagerWinsensorDeviceBO.class);
criteria.add(Restrictions.eq("nodeId", nodeId));
criteria.addOrder(Order.desc("registerTime"));
List<ManagerWinsensorDeviceBO> devices = criteria.list();
return (devices.size() > 0) ? devices.get(0) : null;
}
@SuppressWarnings("unchecked")
@Override
public List<ManagerWinsensorDeviceBO> getAllDevice() {
Criteria criteria = getSession().createCriteria(ManagerWinsensorDeviceBO.class);
criteria.addOrder(Order.desc("registerTime"));
return criteria.list();
}
}