package org.ovirt.engine.core.bll; import java.util.Collections; import java.util.List; import javax.inject.Inject; import org.ovirt.engine.core.bll.context.CommandContext; import org.ovirt.engine.core.bll.utils.PermissionSubject; import org.ovirt.engine.core.common.VdcObjectType; import org.ovirt.engine.core.common.action.BookmarksParametersBase; import org.ovirt.engine.core.common.businessentities.ActionGroup; import org.ovirt.engine.core.common.businessentities.Bookmark; import org.ovirt.engine.core.common.errors.EngineMessage; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.BookmarkDao; public abstract class BookmarkCommandBase<T extends BookmarksParametersBase> extends CommandBase<T> { @Inject protected BookmarkDao bookmarkDao; private Bookmark bookmark; private String bookmarkName; public BookmarkCommandBase(T parameters, CommandContext cmdContext) { super(parameters, cmdContext); } protected Bookmark getBookmark() { if (bookmark == null) { bookmark = bookmarkDao.get(getBookmarkId()); } return bookmark; } @Override public void setActionMessageParameters() { addValidationMessage(EngineMessage.VAR__TYPE__BOOKMARK); } /** * This method is used by reflection by {@link org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector} * * @return The bookmark name */ public String getBookmarkName() { if (bookmarkName == null && getBookmark() != null) { bookmarkName = getBookmark().getName(); } return bookmarkName; } public Guid getBookmarkId() { return getParameters().getBookmarkId(); } @Override public List<PermissionSubject> getPermissionCheckSubjects() { return Collections.singletonList(new PermissionSubject(Guid.SYSTEM, VdcObjectType.System, ActionGroup.BOOKMARK_MANAGEMENT)); } }