package org.ovirt.engine.core.dao; import java.util.List; import org.ovirt.engine.core.common.businessentities.VmIcon; import org.ovirt.engine.core.compat.Guid; public interface VmIconDao extends GenericDao<VmIcon, Guid> { /** * Retrieves the list of all vm icons with optional permission filtering. * * @param userID * the ID of the user requesting the information * @param isFiltered * Whether the results should be filtered according to the user's permissions * * @return if not filtered: the list of all icons, if filtered: union of predefined icons and icons that are * associated with some entity the user has permission to (vm or template) */ List<VmIcon> getAll(Guid userID, boolean isFiltered); List<VmIcon> getByDataUrl(String dataUrl); /** * It deletes specified icon if it is not 'default icon' for some os * and it is not use by any vm-like entity. * @param iconId id of icon to delete */ void removeIfUnused(Guid iconId); /** * If the icon is not stored, it stores the icon. * @param icon icon data url * @return id of the icon in database */ Guid ensureIconInDatabase(final String icon); void removeAllUnusedIcons(); boolean exists(Guid id); }