package org.ovirt.engine.core.bll.qos; import java.util.List; import javax.inject.Inject; import org.ovirt.engine.core.bll.context.CommandContext; import org.ovirt.engine.core.bll.validator.HostNetworkQosValidator; import org.ovirt.engine.core.common.action.QosParametersBase; import org.ovirt.engine.core.common.businessentities.network.HostNetworkQos; import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.core.dao.network.HostNetworkQosDao; import org.ovirt.engine.core.dao.network.NetworkDao; public class RemoveHostNetworkQosCommand extends RemoveQosCommandBase<HostNetworkQos, HostNetworkQosValidator> { @Inject private RefreshNetworksParametersFactory refreshNetworksParametersFactory; @Inject private NetworkDao networkDao; public RemoveHostNetworkQosCommand(QosParametersBase<HostNetworkQos> parameters, CommandContext cmdContext) { super(parameters, cmdContext); } @Override protected HostNetworkQosDao getQosDao() { //might NOT be replaced with injection; superclass constructor accesses this and thus this dao would be null. return getDbFacade().getHostNetworkQosDao(); } @Override protected HostNetworkQosValidator getQosValidator(HostNetworkQos qos) { return new HostNetworkQosValidator(qos); } @Override protected void executeCommand() { List<Network> networksHavingQos = networkDao.getAllForQos(getQosId()); //remove qos. super.executeCommand(); refreshNetworks(refreshNetworksParametersFactory.create(networksHavingQos)); } }