package org.ovirt.engine.ui.uicommonweb.models.datacenters;
import org.ovirt.engine.core.common.businessentities.network.NetworkQoS;
import org.ovirt.engine.ui.uicommonweb.models.Model;
public class BaseNetworkQosModel extends Model {
private NetworkQosParametersModel inbound;
private NetworkQosParametersModel outbound;
protected NetworkQoS networkQoS;
public NetworkQosParametersModel getInbound() {
return inbound;
}
public void setInbound(NetworkQosParametersModel inbound) {
this.inbound = inbound;
}
public NetworkQosParametersModel getOutbound() {
return outbound;
}
public void setOutbound(NetworkQosParametersModel outbound) {
this.outbound = outbound;
}
public BaseNetworkQosModel() {
setInbound(new NetworkQosParametersModel());
setOutbound(new NetworkQosParametersModel());
getPropertyChangedEvent().addListener((ev, sender, args) -> {
if ("IsChangable".equals(args.propertyName)) { //$NON-NLS-1$
boolean value = getIsChangable();
getInbound().setIsChangeable(value);
getOutbound().setIsChangeable(value);
}
});
}
public void init(NetworkQoS qos) {
if (qos == null) {
networkQoS = new NetworkQoS();
} else {
networkQoS = qos;
}
if (networkQoS.getInboundAverage() == null
|| networkQoS.getInboundPeak() == null
|| networkQoS.getInboundBurst() == null) {
getInbound().getEnabled().setEntity(false);
} else {
getInbound().getAverage().setEntity(networkQoS.getInboundAverage());
getInbound().getPeak().setEntity(networkQoS.getInboundPeak());
getInbound().getBurst().setEntity(networkQoS.getInboundBurst());
}
if (networkQoS.getOutboundAverage() == null
|| networkQoS.getOutboundPeak() == null
|| networkQoS.getOutboundBurst() == null) {
getOutbound().getEnabled().setEntity(false);
} else {
getOutbound().getAverage().setEntity(networkQoS.getOutboundAverage());
getOutbound().getPeak().setEntity(networkQoS.getOutboundPeak());
getOutbound().getBurst().setEntity(networkQoS.getOutboundBurst());
}
}
public boolean validate() {
if (!getIsAvailable()) {
return true;
}
getInbound().validate();
getOutbound().validate();
setIsValid(getInbound().getIsValid() && getOutbound().getIsValid());
return getIsValid();
}
public NetworkQoS flush() {
if (getInbound().getEnabled().getEntity()) {
networkQoS.setInboundAverage(getInbound().getAverage().getEntity());
networkQoS.setInboundPeak(getInbound().getPeak().getEntity());
networkQoS.setInboundBurst(getInbound().getBurst().getEntity());
} else {
networkQoS.setInboundAverage(null);
networkQoS.setInboundPeak(null);
networkQoS.setInboundBurst(null);
}
if (getOutbound().getEnabled().getEntity()) {
networkQoS.setOutboundAverage(getOutbound().getAverage().getEntity());
networkQoS.setOutboundPeak(getOutbound().getPeak().getEntity());
networkQoS.setOutboundBurst(getOutbound().getBurst().getEntity());
} else {
networkQoS.setOutboundAverage(null);
networkQoS.setOutboundPeak(null);
networkQoS.setOutboundBurst(null);
}
return networkQoS;
}
}