package org.ovirt.engine.core.bll.profiles;
import org.ovirt.engine.core.bll.context.CommandContext;
import org.ovirt.engine.core.common.action.ProfileParametersBase;
import org.ovirt.engine.core.common.businessentities.profiles.ProfileBase;
import org.ovirt.engine.core.common.errors.EngineMessage;
public abstract class UpdateProfileCommandBase<T extends ProfileParametersBase<P>, P extends ProfileBase, Q extends ProfileValidator<P>> extends ProfileCommandBase<T, P> {
public UpdateProfileCommandBase(T parameters, CommandContext cmdContext) {
super(parameters, cmdContext);
}
@Override
protected boolean validate() {
Q validator = getProfileValidator();
return validate(validator.profileIsSet())
&& validate(validator.profileExists())
&& validate(validator.profileNameNotUsed())
&& validate(validator.parentEntityNotChanged())
&& validate(validator.qosExistsOrNull());
}
@Override
protected void executeCommand() {
getProfileDao().update(getParameters().getProfile());
getReturnValue().setActionReturnValue(getParameters().getProfile().getId());
setSucceeded(true);
}
@Override
protected void setActionMessageParameters() {
super.setActionMessageParameters();
addValidationMessage(EngineMessage.VAR__ACTION__UPDATE);
}
protected abstract Q getProfileValidator();
}