package org.ovirt.engine.core.bll;
import org.ovirt.engine.core.bll.context.CommandContext;
import org.ovirt.engine.core.common.AuditLogType;
import org.ovirt.engine.core.common.action.BookmarksOperationParameters;
import org.ovirt.engine.core.common.businessentities.Bookmark;
import org.ovirt.engine.core.common.errors.EngineMessage;
public class UpdateBookmarkCommand<T extends BookmarksOperationParameters> extends BookmarkOperationCommand<T> {
public UpdateBookmarkCommand(T parameters, CommandContext cmdContext) {
super(parameters, cmdContext);
}
@Override
public void setActionMessageParameters() {
super.setActionMessageParameters();
addValidationMessage(EngineMessage.VAR__ACTION__UPDATE);
}
@Override
protected boolean validate() {
Bookmark updated = getBookmark();
if (updated == null) {
return failValidation(EngineMessage.ACTION_TYPE_FAILED_BOOKMARK_INVALID_ID);
}
Bookmark current = bookmarkDao.getByName(updated.getName());
if (current != null && !current.getId().equals(updated.getId())) {
return failValidation(EngineMessage.ACTION_TYPE_FAILED_NAME_ALREADY_USED);
}
return true;
}
@Override
protected void executeCommand() {
bookmarkDao.update(getBookmark());
setSucceeded(true);
}
@Override
public AuditLogType getAuditLogTypeValue() {
return getSucceeded() ? AuditLogType.USER_UPDATE_BOOKMARK : AuditLogType.USER_UPDATE_BOOKMARK_FAILED;
}
}