package org.ovirt.engine.core.bll; import javax.inject.Inject; import org.ovirt.engine.core.bll.context.CommandContext; import org.ovirt.engine.core.common.EventNotificationMethod; import org.ovirt.engine.core.common.action.EventSubscriptionParametesBase; import org.ovirt.engine.core.common.businessentities.aaa.DbUser; import org.ovirt.engine.core.common.errors.EngineMessage; import org.ovirt.engine.core.dao.DbUserDao; public class RemoveEventSubscriptionCommand<T extends EventSubscriptionParametesBase> extends EventSubscriptionCommandBase<T> { @Inject private DbUserDao dbUserDao; public RemoveEventSubscriptionCommand(T parameters, CommandContext cmdContext) { super(parameters, cmdContext); } @Override protected boolean validate() { boolean retValue; // get notification method EventNotificationMethod event_notification_method = getParameters().getEventSubscriber().getEventNotificationMethod(); if (event_notification_method != null) { // Validate user DbUser user = dbUserDao.get(getParameters().getEventSubscriber().getSubscriberId()); if (user == null) { addValidationMessage(EngineMessage.USER_MUST_EXIST_IN_DB); retValue = false; } else { retValue = validateRemove(event_notification_method, getParameters().getEventSubscriber(), user); } } else { addValidationMessage(EngineMessage.EN_UNKNOWN_NOTIFICATION_METHOD); retValue = false; } return retValue; } @Override protected void executeCommand() { eventDao.unsubscribe(getParameters().getEventSubscriber()); setSucceeded(true); } }