package org.ovirt.engine.core.vdsbroker; import java.util.Objects; import javax.inject.Inject; import javax.inject.Singleton; import org.ovirt.engine.core.common.businessentities.network.HostNetworkQos; import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.core.common.businessentities.network.NetworkAttachment; import org.ovirt.engine.core.dao.network.HostNetworkQosDao; @Singleton public class EffectiveHostNetworkQos { private final HostNetworkQosDao hostNetworkQosDao; @Inject public EffectiveHostNetworkQos(HostNetworkQosDao hostNetworkQosDao) { this.hostNetworkQosDao = hostNetworkQosDao; } public HostNetworkQos getQos(NetworkAttachment networkAttachment, Network network) { Objects.requireNonNull(network); return networkAttachment != null && networkAttachment.isQosOverridden() ? HostNetworkQos.fromAnonymousHostNetworkQos(networkAttachment.getHostNetworkQos()) : getHostNetworkQosFromNetwork(network); } private HostNetworkQos getHostNetworkQosFromNetwork(Network network) { return hostNetworkQosDao.get(network.getQosId()); } }