/** * */ package com.cloud.vm.dao; import java.util.List; import javax.ejb.Local; import com.cloud.utils.db.GenericDaoBase; import com.cloud.utils.db.GenericSearchBuilder; import com.cloud.utils.db.SearchBuilder; import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.db.SearchCriteria.Func; import com.cloud.vm.NicVO; @Local(value=NicDao.class) public class NicDaoImpl extends GenericDaoBase implements NicDao { private final SearchBuilder InstanceSearch; private final GenericSearchBuilder IpSearch; protected NicDaoImpl() { super(); InstanceSearch = createSearchBuilder(); InstanceSearch.and("instance", InstanceSearch.entity().getInstanceId(), SearchCriteria.Op.EQ); InstanceSearch.done(); IpSearch = createSearchBuilder(String.class); IpSearch.select(null, Func.DISTINCT, IpSearch.entity().getIp4Address()); IpSearch.and("nc", IpSearch.entity().getNetworkConfigurationId(), SearchCriteria.Op.EQ); IpSearch.and("address", IpSearch.entity().getIp4Address(), SearchCriteria.Op.NNULL); IpSearch.done(); } @Override public List listBy(long instanceId) { SearchCriteria sc = InstanceSearch.create(); sc.setParameters("instance", instanceId); return listBy(sc); } @Override public List listIpAddressInNetworkConfiguration(long networkConfigId) { SearchCriteria sc = IpSearch.create(); sc.setParameters("nc", networkConfigId); return customSearch(sc, null); } }