package org.ovirt.engine.core.common.businessentities;
import java.util.Objects;
import javax.validation.constraints.Min;
import org.ovirt.engine.core.compat.Guid;
/**
* The <code>QuotaCluster</code> is a business entity that reflects cluster limitation.
*/
public class QuotaCluster implements IVdcQueryable {
public static final Long UNLIMITED_MEM = -1L;
public static final Integer UNLIMITED_VCPU = -1;
/**
* Automatic generated serial version ID.
*/
private static final long serialVersionUID = 168673911413393235L;
/**
* The quota vds group Id.
*/
private Guid quotaClusterId;
/**
* The quota ID.
*/
private Guid quotaId;
/**
* The vds group Id which this limitation is enforced on.
*/
private Guid clusterId;
/**
* Transient field indicates the vds group name.
*/
private String clusterName;
/**
* The virtual CPU limitations for vds group.
*/
@Min(-1)
private Integer virtualCpu;
/**
* Transient field indicates the virtual CPU usage of the quota vds group.
*/
private Integer virtualCpuUsage;
/**
* The virtual memory limitations for specific quota cluster.
*/
@Min(-1)
private Long memSizeMB;
/**
* Transient field indicates the virtual memory usage of the quota cluster.
*/
private Long memSizeMBUsage;
/**
* Default constructor of QuotaCluster.
*/
public QuotaCluster() {
}
public QuotaCluster(Guid quotaClusterId,
Guid quotaId,
Guid clusterId,
Integer virtualCpu,
Integer virtualCpuUsage,
Long memSizeMB,
Long memSizeMBUsage) {
this.quotaClusterId = quotaClusterId;
this.quotaId = quotaId;
this.clusterId = clusterId;
this.virtualCpu = virtualCpu;
this.virtualCpuUsage = virtualCpuUsage;
this.memSizeMB = memSizeMB;
this.memSizeMBUsage = memSizeMBUsage;
}
/**
* @return the quotaId
*/
public Guid getQuotaId() {
return quotaId;
}
/**
* @param quotaId
* the quotaId to set
*/
public void setQuotaId(Guid quotaId) {
this.quotaId = quotaId;
}
/**
* @return the clusterId
*/
public Guid getClusterId() {
return clusterId;
}
/**
* @param clusterId
* the clusterId to set
*/
public void setClusterId(Guid clusterId) {
this.clusterId = clusterId;
}
/**
* @return the memSizeMBUsage
*/
public Long getMemSizeMBUsage() {
return memSizeMBUsage;
}
/**
* @param memSizeMB
* the memSizeMB to set
*/
public void setMemSizeMB(Long memSizeMB) {
this.memSizeMB = memSizeMB;
}
/**
* @return the virtualCpuUsage
*/
public Integer getVirtualCpuUsage() {
return virtualCpuUsage;
}
/**
* @param virtualCpuUsage
* the virtualCpuUsage to set
*/
public void setVirtualCpuUsage(Integer virtualCpuUsage) {
this.virtualCpuUsage = virtualCpuUsage;
}
/**
* @return the virtualCpu
*/
public Integer getVirtualCpu() {
return virtualCpu;
}
/**
* @param virtualCpu
* the virtualCpu to set
*/
public void setVirtualCpu(Integer virtualCpu) {
this.virtualCpu = virtualCpu;
}
/**
* @param memSizeMBUsage
* the memSizeMBUsage to set
*/
public void setMemSizeMBUsage(Long memSizeMBUsage) {
this.memSizeMBUsage = memSizeMBUsage;
}
/**
* @return the memory size in mega bytes.
*/
public Long getMemSizeMB() {
return memSizeMB;
}
@Override
public int hashCode() {
return Objects.hash(
quotaId,
quotaClusterId,
clusterId,
virtualCpu,
memSizeMB
);
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof QuotaCluster)) {
return false;
}
QuotaCluster other = (QuotaCluster) obj;
return Objects.equals(quotaId, other.quotaId)
&& Objects.equals(quotaClusterId, other.quotaClusterId)
&& Objects.equals(clusterId, other.clusterId)
&& Objects.equals(virtualCpu, other.virtualCpu)
&& Objects.equals(virtualCpuUsage, other.virtualCpuUsage)
&& Objects.equals(memSizeMB, other.memSizeMB)
&& Objects.equals(memSizeMBUsage, other.memSizeMBUsage);
}
/**
* @return the quotaClusterId
*/
public Guid getQuotaClusterId() {
return quotaClusterId;
}
/**
* @param quotaClusterId
* the quotaClusterId to set
*/
public void setQuotaClusterId(Guid quotaClusterId) {
this.quotaClusterId = quotaClusterId;
}
/**
* @return the clusterName
*/
public String getClusterName() {
return clusterName;
}
/**
* @param clusterName
* the clusterName to set
*/
public void setClusterName(String clusterName) {
this.clusterName = clusterName;
}
@Override
public Object getQueryableId() {
return getQuotaClusterId();
}
}