/** * Abiquo community edition * cloud management application for hybrid clouds * Copyright (C) 2008-2010 - Abiquo Holdings S.L. * * This application is free software; you can redistribute it and/or * modify it under the terms of the GNU LESSER GENERAL PUBLIC * LICENSE as published by the Free Software Foundation under * version 3 of the License * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * LESSER GENERAL PUBLIC LICENSE v.3 for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ /** * */ package com.abiquo.abiserver.persistence.dao.metering; import java.util.HashMap; import java.util.List; import com.abiquo.abiserver.business.hibernate.pojohb.metering.MeterHB; import com.abiquo.abiserver.business.hibernate.pojohb.user.UserHB; import com.abiquo.abiserver.exception.PersistenceException; import com.abiquo.abiserver.persistence.DAO; /** * Specific interface to work with the * {@link com.abiquo.abiserver.business.hibernate.pojohb.metering.MeterHB} Exposes all the methods * that this entity will need to interact with the data source * * @author jdevesa@abiquo.com */ public interface MeterDAO extends DAO<MeterHB, Long> { /** * Return all the metering entries filtered by some fields (or not) * * @param filter HashMap containing relation "column"-"restriction". Correct 'column' values * are:<br> * "datacenter"<br> * "rack" <br> * "physicalmachine" <br> * "storagesystem" <br> * "storagepool" <br> * "volume" <br> * "network" <br> * "subnet" <br> * "enterprise" <br> * "user" <br> * "virtualdatacenter" <br> * "virtualapp" <br> * "virtualmachine" <br> * "severity" <br> * "actionperformed" <br> * "component" <br> * "datefrom" <br> * "dateto" <br> * @param performedbyList the list of users we can watch its movements * @param numrows set the max rows to return * @return List of matching entries if "performedby" is a key. Null otherwise. */ public List<MeterHB> findAllByFilter(HashMap<String, String> filter, List<String> performedbyList, Integer numrows, UserHB user) throws PersistenceException; }