package org.ovirt.engine.core.common.businessentities;
import java.io.Serializable;
import java.util.Set;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
import org.ovirt.engine.core.common.errors.VdcBllErrors;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.compat.INotifyPropertyChanged;
import org.ovirt.engine.core.compat.NGuid;
import org.ovirt.engine.core.compat.PropertyChangedEventArgs;
import org.ovirt.engine.core.compat.StringFormat;
import org.ovirt.engine.core.compat.StringHelper;
//VB & C# TO JAVA CONVERTER TODO TASK: Java annotations will not correspond to .NET attributes:
@XmlAccessorType(XmlAccessType.NONE)
@XmlType(name = "storage_domains")
public class storage_domains extends IVdcQueryable implements INotifyPropertyChanged, Serializable {
private static final long serialVersionUID = -6162192446628804305L;
public storage_domains() {
_staticData = new storage_domain_static();
_dynamicData = new storage_domain_dynamic();
setStoragePoolIsoMapData(new storage_pool_iso_map());
}
public storage_domains(Guid id, String storage, String storage_name, Guid storage_pool_id,
Integer available_disk_size, Integer used_disk_size, StorageDomainStatus status, String storage_pool_name,
int storage_pool_type, int storage_type) {
_staticData = new storage_domain_static();
_dynamicData = new storage_domain_dynamic();
setStoragePoolIsoMapData(new storage_pool_iso_map());
this.setid(id);
this.setstorage(storage);
this.setstorage_name(storage_name);
this.setstorage_pool_id(storage_pool_id);
this.setavailable_disk_size(available_disk_size);
this.setused_disk_size(used_disk_size);
this.setstatus(status);
this.setstorage_pool_name(storage_pool_name);
this.setstorage_type(StorageType.forValue(storage_pool_type));
this.setstorage_domain_type(StorageDomainType.forValue(storage_type));
}
private Set<VdcBllErrors> alerts;
/**
* @return the alerts
*/
public Set<VdcBllErrors> getAlerts() {
return alerts;
}
/**
* @param alerts the alerts to set
*/
public void setAlerts(Set<VdcBllErrors> alerts) {
this.alerts = alerts;
}
// VB & C# TO JAVA CONVERTER TODO TASK: Java annotations will not correspond
// to .NET attributes:
@XmlElement(name = "StoragePoolIsoMapData")
private storage_pool_iso_map privateStoragePoolIsoMapData;
public storage_pool_iso_map getStoragePoolIsoMapData() {
return privateStoragePoolIsoMapData;
}
public void setStoragePoolIsoMapData(storage_pool_iso_map value) {
privateStoragePoolIsoMapData = value;
}
// VB & C# TO JAVA CONVERTER TODO TASK: Java annotations will not correspond
// to .NET attributes:
@XmlElement(name = "StorageStaticData")
private storage_domain_static _staticData;
public storage_domain_static getStorageStaticData() {
return _staticData;
}
public void setStorageStaticData(storage_domain_static value) {
_staticData = value;
}
// VB & C# TO JAVA CONVERTER TODO TASK: Java annotations will not correspond
// to .NET attributes:
@XmlElement(name = "StorageDynamicData")
private storage_domain_dynamic _dynamicData;
public storage_domain_dynamic getStorageDynamicData() {
return _dynamicData;
}
public void setStorageDynamicData(storage_domain_dynamic value) {
_dynamicData = value;
}
public Guid getid() {
return this.getStorageStaticData().getId();
}
public void setid(Guid value) {
getStorageStaticData().setId(value);
getStorageDynamicData().setId(value);
getStoragePoolIsoMapData().setstorage_id(value);
}
public String getstorage() {
return getStorageStaticData().getstorage();
}
public void setstorage(String value) {
getStorageStaticData().setstorage(value);
}
public String getstorage_name() {
return getStorageStaticData().getstorage_name();
}
public void setstorage_name(String value) {
if (!StringHelper.EqOp(getStorageStaticData().getstorage_name(), value)) {
getStorageStaticData().setstorage_name(value);
OnPropertyChanged(new PropertyChangedEventArgs("storage_name"));
}
}
public NGuid getstorage_pool_id() {
return getStoragePoolIsoMapData().getstorage_pool_id();
}
public void setstorage_pool_id(NGuid value) {
getStoragePoolIsoMapData().setstorage_pool_id(value);
}
public Integer getavailable_disk_size() {
return getStorageDynamicData().getavailable_disk_size();
}
public void setavailable_disk_size(Integer value) {
getStorageDynamicData().setavailable_disk_size(value);
OnPropertyChanged(new PropertyChangedEventArgs("available_disk_size"));
UpdateTotalDiskSize();
UpdateOverCommitPercent();
}
private void UpdateOverCommitPercent() {
setstorage_domain_over_commit_percent(getavailable_disk_size() != null && getavailable_disk_size() > 0 ? getcommitted_disk_size()
* 100 / getavailable_disk_size()
: 0);
}
private int _storage_domain_over_commit_percent;
public int getstorage_domain_over_commit_percent() {
return _storage_domain_over_commit_percent;
}
public void setstorage_domain_over_commit_percent(int value) {
_storage_domain_over_commit_percent = value;
OnPropertyChanged(new PropertyChangedEventArgs("storage_domain_over_commit_percent"));
}
private int _committedDiskSize;
// VB & C# TO JAVA CONVERTER TODO TASK: Java annotations will not correspond
// to .NET attributes:
@XmlElement
public int getcommitted_disk_size() {
return _committedDiskSize;
}
public void setcommitted_disk_size(int value) {
_committedDiskSize = value;
UpdateOverCommitPercent();
}
public Integer getused_disk_size() {
return getStorageDynamicData().getused_disk_size();
}
public void setused_disk_size(Integer value) {
getStorageDynamicData().setused_disk_size(value);
OnPropertyChanged(new PropertyChangedEventArgs("used_disk_size"));
UpdateTotalDiskSize();
}
private void UpdateTotalDiskSize() {
Integer available = getStorageDynamicData().getavailable_disk_size();
Integer used = getStorageDynamicData().getused_disk_size();
if (available != null && used != null) {
setTotalDiskSize(available + used);
} else {
setTotalDiskSize(0); // GREGM prevents NPEs
}
}
private Integer totalDiskSize = 0; // GREGM prevents NPEs
public Integer getTotalDiskSize() {
UpdateTotalDiskSize();
return totalDiskSize;
}
public void setTotalDiskSize(Integer value) {
value = (value == null) ? 0 : value;
if (!totalDiskSize.equals(value)) {
totalDiskSize = value;
OnPropertyChanged(new PropertyChangedEventArgs("TotalDiskSize"));
}
}
public StorageDomainStatus getstatus() {
return getStoragePoolIsoMapData().getstatus();
}
public void setstatus(StorageDomainStatus value) {
StorageDomainStatus curStatus = getStoragePoolIsoMapData().getstatus();
if (curStatus == null || curStatus != value) {
getStoragePoolIsoMapData().setstatus(value);
OnPropertyChanged(new PropertyChangedEventArgs("status"));
}
}
public StorageDomainOwnerType getowner() {
return getStoragePoolIsoMapData().getowner();
}
public void setowner(StorageDomainOwnerType value) {
getStoragePoolIsoMapData().setowner(value);
}
// VB & C# TO JAVA CONVERTER TODO TASK: Java annotations will not correspond
// to .NET attributes:
@XmlElement(name = "storage_pool_name")
private String storage_pool_nameField;
public String getstorage_pool_name() {
return storage_pool_nameField;
}
public void setstorage_pool_name(String value) {
storage_pool_nameField = value;
OnPropertyChanged(new PropertyChangedEventArgs("storage_name"));
}
// VB & C# TO JAVA CONVERTER TODO TASK: Java annotations will not correspond
// to .NET attributes:
@XmlElement
public StorageType getstorage_type() {
return getStorageStaticData().getstorage_type();
}
public void setstorage_type(StorageType value) {
getStorageStaticData().setstorage_type(value);
}
private StorageDomainSharedStatus _storageDomainSharedStatus = StorageDomainSharedStatus.forValue(0);
// VB & C# TO JAVA CONVERTER TODO TASK: Java annotations will not correspond
// to .NET attributes:
@XmlElement
public StorageDomainSharedStatus getstorage_domain_shared_status() {
return _storageDomainSharedStatus;
}
public void setstorage_domain_shared_status(StorageDomainSharedStatus value) {
if (_storageDomainSharedStatus != value) {
_storageDomainSharedStatus = value;
OnPropertyChanged(new PropertyChangedEventArgs("storage_domain_shared_status"));
}
}
public StorageDomainType getstorage_domain_type() {
return getStorageStaticData().getstorage_domain_type();
}
public void setstorage_domain_type(StorageDomainType value) {
getStorageStaticData().setstorage_domain_type(value);
OnPropertyChanged(new PropertyChangedEventArgs("storage_domain_type"));
}
public StorageFormatType getStorageFormat() {
return getStorageStaticData().getStorageFormat();
}
public void setStorageFormat(StorageFormatType value) {
getStorageStaticData().setStorageFormat(value);
}
// VB & C# TO JAVA CONVERTER TODO TASK: Events are not available in Java:
// public event PropertyChangedEventHandler PropertyChanged;
@Override
public Object getQueryableId() {
return StringFormat.format("%1$s_%2$s", getid().toString(), getstorage_pool_id() != null ? getstorage_pool_id()
.getValue().toString() : Guid.Empty.toString());
}
private static final java.util.ArrayList<String> _spProperties = new java.util.ArrayList<String>(
java.util.Arrays.asList(new String[] { "storage_name", "status", "used_disk_size", "available_disk_size",
"committed_disk_size", "storage_domain_type", "storage_domain_shared_status", "storage" }));
@Override
public java.util.ArrayList<String> getChangeablePropertiesList() {
return _spProperties;
}
protected void OnPropertyChanged(PropertyChangedEventArgs e) {
/* if (PropertyChanged != null) */
{
/* PropertyChanged(this, e); */
}
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + _committedDiskSize;
result = prime * result
+ ((_dynamicData == null) ? 0 : _dynamicData.hashCode());
result = prime * result
+ ((_staticData == null) ? 0 : _staticData.hashCode());
result = prime
* result
+ ((_storageDomainSharedStatus == null) ? 0
: _storageDomainSharedStatus.hashCode());
result = prime * result + _storage_domain_over_commit_percent;
result = prime
* result
+ ((privateStoragePoolIsoMapData == null) ? 0
: privateStoragePoolIsoMapData.hashCode());
result = prime * result
+ ((totalDiskSize == null) ? 0 : totalDiskSize.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
storage_domains other = (storage_domains) obj;
if (_committedDiskSize != other._committedDiskSize)
return false;
if (_storageDomainSharedStatus != other._storageDomainSharedStatus)
return false;
if (_storage_domain_over_commit_percent != other._storage_domain_over_commit_percent)
return false;
if (totalDiskSize == null) {
if (other.totalDiskSize != null)
return false;
} else if (!totalDiskSize.equals(other.totalDiskSize))
return false;
return true;
}
}