package org.ovirt.engine.core.bll;
import javax.inject.Inject;
import org.ovirt.engine.core.common.businessentities.qos.QosType;
import org.ovirt.engine.core.common.queries.QosQueryParameterBase;
import org.ovirt.engine.core.dao.network.HostNetworkQosDao;
import org.ovirt.engine.core.dao.network.NetworkQoSDao;
import org.ovirt.engine.core.dao.qos.CpuQosDao;
import org.ovirt.engine.core.dao.qos.QosBaseDao;
import org.ovirt.engine.core.dao.qos.QosDao;
import org.ovirt.engine.core.dao.qos.StorageQosDao;
public abstract class QosQueryBase extends QueriesCommandBase<QosQueryParameterBase> {
@Inject
private QosBaseDao qosBaseDao;
@Inject
private StorageQosDao storageQosDao;
@Inject
private CpuQosDao cpuQosDao;
@Inject
private NetworkQoSDao networkQoSDao;
@Inject
private HostNetworkQosDao hostNetworkQosDao;
public QosQueryBase(QosQueryParameterBase parameters) {
super(parameters);
}
protected QosDao<?> getQosDao() {
QosType qosType = getParameters().getQosType();
if (qosType == null) {
return qosBaseDao;
}
switch (qosType) {
case STORAGE:
return storageQosDao;
case CPU:
return cpuQosDao;
case NETWORK:
return networkQoSDao;
case HOSTNETWORK:
return hostNetworkQosDao;
default:
log.debug("Not handled QoS type: '{}'", qosType);
break;
}
return null;
}
}