package org.ovirt.engine.core.common.businessentities.storage; import java.util.HashMap; import org.ovirt.engine.core.common.businessentities.Identifiable; public enum ImageTransferPhase implements Identifiable { // Note: when adding/changing values, add text lookup to DiskUploadImageProgressColumn UNKNOWN(0, "Unknown"), INITIALIZING(1, "Initializing"), TRANSFERRING(2, "Transferring"), RESUMING(3, "Resuming"), PAUSED_SYSTEM(4, "Paused by System"), PAUSED_USER(5, "Paused by User"), CANCELLED(6, "Cancelled"), FINALIZING_SUCCESS(7, "Finalizing Success"), FINALIZING_FAILURE(8, "Finalizing Failure"), FINISHED_SUCCESS(9, "Finished Success"), FINISHED_FAILURE(10, "Finished Failure"); private int value; private String description; private static final HashMap<Integer, ImageTransferPhase> valueToPhase = new HashMap<>(); static { for (ImageTransferPhase phase : values()) { valueToPhase.put(phase.getValue(), phase); } } private ImageTransferPhase(int value, String description) { this.value = value; this.description = description; } @Override public int getValue() { return value; } public static ImageTransferPhase forValue(int value) { return valueToPhase.get(value); } @Override public String toString() { return description; } public boolean canBePaused() { return this == INITIALIZING || this == RESUMING || this == TRANSFERRING; } public boolean canBeResumed() { return this == PAUSED_SYSTEM || this == PAUSED_USER; } public boolean canBeCancelled() { return canBePaused() || canBeResumed(); } }