package org.ovirt.engine.core.dao; import java.util.List; import org.ovirt.engine.core.common.businessentities.aaa.DbGroup; import org.ovirt.engine.core.compat.Guid; /** * Defines a type that performs CRUD operations on instances of {@link DbGroup}. */ public interface DbGroupDao extends Dao, SearchDao<DbGroup> { /** * Retrieves the instance with the specified id. * * @param id * the group id * @return the group */ DbGroup get(Guid id); /** * Retrieves a group by domain name and external identifier. * * @param domain the name of the domain * @param externalId the external identifier * @return a reference to the group or {@code null} if no such group * can be found in the database */ DbGroup getByExternalId(String domain, String externalId); /** * Retrieves a group that matches either the internal or external identifiers given. * * @param id the internal identifier * @param domain the name of the domain * @param externalId the external identifier * @return a reference to the group or {@code null} if no such group * can be found in the database */ DbGroup getByIdOrExternalId(Guid id, String domain, String externalId); /** * Retrieves the group with the specified name. * * @param name * the group name * @return the group */ DbGroup getByName(String name); /** * Retrieves all groups. * * @return the list of all groups */ List<DbGroup> getAll(); /** * Saves the supplied group. * * @param group * the group */ void save(DbGroup group); /** * Updates the supplied group. * * @param group * the group */ void update(DbGroup group); /** * Removes the group with the specified id. * * @param id * the group id */ void remove(Guid id); }