package org.ovirt.engine.core.common.businessentities.network; import java.util.Objects; import javax.validation.Valid; import org.ovirt.engine.core.common.businessentities.qos.QosBase; import org.ovirt.engine.core.common.businessentities.qos.QosType; import org.ovirt.engine.core.common.utils.ToStringBuilder; /** * <a href="http://www.ovirt.org/develop/release-management/features/network/detailed-host-network-qos/">wiki doc</a> */ public class HostNetworkQos extends QosBase { private static final long serialVersionUID = 490527123959847064L; @Valid private HostNetworkQosProperties hostNetworkQosProperties = new HostNetworkQosProperties(); public HostNetworkQos() { super(QosType.HOSTNETWORK); } public static HostNetworkQos fromAnonymousHostNetworkQos(AnonymousHostNetworkQos hostNetworkQos) { if (hostNetworkQos == null) { return null; } HostNetworkQos result = new HostNetworkQos(); result.setId(hostNetworkQos.getId()); result.hostNetworkQosProperties = new HostNetworkQosProperties(hostNetworkQos.getHostNetworkQosProperties()); return result; } public Integer getOutAverageLinkshare() { return hostNetworkQosProperties.getOutAverageLinkshare(); } public void setOutAverageLinkshare(Integer outAverageLinkshare) { hostNetworkQosProperties.setOutAverageLinkshare(outAverageLinkshare); } public Integer getOutAverageUpperlimit() { return hostNetworkQosProperties.getOutAverageUpperlimit(); } public void setOutAverageUpperlimit(Integer outAverageUpperlimit) { hostNetworkQosProperties.setOutAverageUpperlimit(outAverageUpperlimit); } public Integer getOutAverageRealtime() { return hostNetworkQosProperties.getOutAverageRealtime(); } public void setOutAverageRealtime(Integer outAverageRealtime) { hostNetworkQosProperties.setOutAverageRealtime(outAverageRealtime); } public boolean isEmpty() { return hostNetworkQosProperties.isEmpty(); } HostNetworkQosProperties getHostNetworkQosProperties() { return hostNetworkQosProperties; } @Override public String toString() { return ToStringBuilder.forInstance(this) .append("outAverageLinkshare", renderQosParameter(getOutAverageLinkshare())) .append("outAverageUpperlimit", renderQosParameter(getOutAverageUpperlimit())) .append("outAverageRealtime", renderQosParameter(getOutAverageRealtime())) .build(); } @Override public boolean equals(Object o) { if (this == o) { return true; } if (!(o instanceof HostNetworkQos)) { return false; } if (!super.equals(o)) { return false; } HostNetworkQos that = (HostNetworkQos) o; return Objects.equals(hostNetworkQosProperties, that.hostNetworkQosProperties); } @Override public int hashCode() { return Objects.hash(super.hashCode(), hostNetworkQosProperties); } }