package org.ovirt.engine.ui.frontend.server.dashboard.maps;
import org.ovirt.engine.core.common.businessentities.VDSStatus;
/**
* Map host database statuses to one of the following statuses:
* <ul>
* <li>UP</li>
* <li>WARNING</li>
* <li>DOWN</li>
* </ul>
*/
public enum HostStatusMap {
UP(VDSStatus.Up),
WARNING(VDSStatus.Unassigned, VDSStatus.Maintenance, VDSStatus.Installing, VDSStatus.Reboot,
VDSStatus.PreparingForMaintenance, VDSStatus.PendingApproval, VDSStatus.Connecting,
VDSStatus.InstallingOS, VDSStatus.Kdumping),
DOWN(VDSStatus.Down, VDSStatus.NonResponsive, VDSStatus.Error, VDSStatus.InstallFailed,
VDSStatus.NonOperational);
private VDSStatus[] values;
private HostStatusMap(VDSStatus ...values) {
this.values = values.clone();
}
/**
* Check if the passed in value maps onto the enum type.
* @param value An {@code int} value that is based on the index into {@code StoragePoolStatus}
* @return true if the index maps into this enum value, false otherwise.
* @see VDSStatus
*/
public boolean isType(int value) {
for (VDSStatus status :values) {
if (status.getValue() == value) {
return true;
}
}
return false;
}
/**
* Get all possible mapping of this enum value as lower case strings.
* @return An array of lower case strings that represent the mapping associated with this enum value.
*/
public String[] getStringValues() {
String[] result = new String[values.length];
for (int i = 0; i < values.length; i++) {
result[i] = values[i].name().toLowerCase();
}
return result;
}
}