package org.ovirt.engine.core.bll; import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.action.BookmarksOperationParameters; import org.ovirt.engine.core.common.businessentities.bookmarks; import org.ovirt.engine.core.dal.VdcBllMessages; import org.ovirt.engine.core.dal.dbbroker.DbFacade; public class UpdateBookmarkCommand<T extends BookmarksOperationParameters> extends BookmarkOperationCommand { private static final long serialVersionUID = 1L; public UpdateBookmarkCommand(T parameters) { super(parameters); } @Override protected boolean canDoAction() { boolean result = false; bookmarks updated = getBookmark(); if (updated == null) { AddInvalidIdErrorMessages(VdcBllMessages.VAR__ACTION__UPDATE); } else { bookmarks current = DbFacade.getInstance().getBookmarkDAO() .getByName(updated.getbookmark_name()); if (!(current == null || current.getbookmark_id().equals( updated.getbookmark_id()))) { AddErrorMessages( VdcBllMessages.VAR__ACTION__UPDATE, VdcBllMessages.ACTION_TYPE_FAILED_BOOKMARK_NAME_ALREADY_EXISTS); } else { result = true; } } return result; } @Override protected void executeCommand() { DbFacade.getInstance().getBookmarkDAO().update(getBookmark()); setSucceeded(true); } @Override public AuditLogType getAuditLogTypeValue() { return getSucceeded() ? AuditLogType.USER_UPDATE_BOOKMARK : AuditLogType.USER_UPDATE_BOOKMARK_FAILED; } }