package org.ovirt.mobile.movirt.ui.dashboard.maps; import org.ovirt.mobile.movirt.model.DataCenter; import java.util.Arrays; import java.util.Collections; import java.util.EnumMap; import java.util.List; import java.util.Map; /** * Created by suomiy on 5/18/16. */ public enum DcStatusMap { // dashboard position depends on the order WARNING(DataCenter.Status.UNINITIALIZED, DataCenter.Status.MAINTENANCE, DataCenter.Status.CONTEND), UP(DataCenter.Status.UP), DOWN(DataCenter.Status.NOT_OPERATIONAL, DataCenter.Status.PROBLEMATIC); private final List<DataCenter.Status> values; private static Map<DataCenter.Status, DcStatusMap> map = new EnumMap<>(DataCenter.Status.class); static { for (DcStatusMap item : DcStatusMap.values()) { for (DataCenter.Status status : item.getValues()) { map.put(status, item); } } } DcStatusMap(DataCenter.Status... values) { this.values = Collections.unmodifiableList(Arrays.asList(values)); } public List<DataCenter.Status> getValues() { return values; } public static DashboardPosition getDashboardPosition(DataCenter.Status status) { DcStatusMap result = map.get(status); return result == null ? DashboardPosition.UNKNOWN : DashboardPosition.fromValue(result.ordinal()); } }