package org.ovirt.engine.core.common.businessentities;
import java.util.Objects;
import org.ovirt.engine.core.compat.Guid;
public class StorageDomainDynamic implements BusinessEntity<Guid> {
private static final long serialVersionUID = -5305319985243261293L;
public StorageDomainDynamic() {
this (null, Guid.Empty, null);
}
public StorageDomainDynamic(Integer availableDiskSize, Guid id, Integer usedDiskSize) {
this.availableDiskSize = availableDiskSize;
this.id = id;
this.usedDiskSize = usedDiskSize;
this.externalStatus = ExternalStatus.Ok;
}
private Integer availableDiskSize;
private ExternalStatus externalStatus;
private boolean containsUnregisteredEntities;
public boolean isContainsUnregisteredEntities() {
return containsUnregisteredEntities;
}
public void setContainsUnregisteredEntities(boolean containsUnregisteredEntities) {
this.containsUnregisteredEntities = containsUnregisteredEntities;
}
public Integer getAvailableDiskSize() {
return availableDiskSize;
}
public void setAvailableDiskSize(Integer availableDiskSize) {
this.availableDiskSize = availableDiskSize;
}
private Guid id;
@Override
public Guid getId() {
return id;
}
@Override
public void setId(Guid id) {
this.id = id;
}
private Integer usedDiskSize;
public Integer getUsedDiskSize() {
return usedDiskSize;
}
public void setUsedDiskSize(Integer usedDiskSize) {
this.usedDiskSize = usedDiskSize;
}
public double getfreeDiskPercent() {
int usedDiskSize = getUsedDiskSize() == null ? 0 : getUsedDiskSize();
int availableDiskSize = getAvailableDiskSize() == null ? 0 : getAvailableDiskSize();
double totalSize = usedDiskSize + availableDiskSize;
return totalSize != 0 ? (availableDiskSize / totalSize) * 100 : 0.0;
}
public ExternalStatus getExternalStatus() {
return externalStatus;
}
public void setExternalStatus(ExternalStatus externalStatus) {
this.externalStatus = externalStatus;
}
@Override
public int hashCode() {
return Objects.hash(
id,
availableDiskSize,
usedDiskSize,
externalStatus,
containsUnregisteredEntities
);
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof StorageDomainDynamic)) {
return false;
}
StorageDomainDynamic other = (StorageDomainDynamic) obj;
return Objects.equals(id, other.id)
&& Objects.equals(availableDiskSize, other.availableDiskSize)
&& Objects.equals(usedDiskSize, other.usedDiskSize)
&& Objects.equals(externalStatus, other.externalStatus)
&& containsUnregisteredEntities == other.containsUnregisteredEntities;
}
}