package edu.ualberta.med.biobank.model; import java.io.Serializable; import java.util.Arrays; import java.util.Collections; import java.util.List; import edu.ualberta.med.biobank.common.util.NotAProxy; public enum ActivityStatus implements NotAProxy, Serializable { // TODO: a key for translation? Even if comes from server is enum, so will // use local translation. // TODO: comment on NOT CHANGING THE ID!!! ACTIVE(1, "Active"), CLOSED(2, "Closed"), // TODO: why can't there be a closed and flagged item or an active but // flagged // item? Especially for users that are mean to be enabled or disabled. // When is ActivityStatus.FLAGGED even used in the source code? Can a // flagged // user log in? What is the point of flagged? Shouldn't it be separate? FLAGGED(4, "Flagged"); private static final List<ActivityStatus> VALUES_LIST = Collections .unmodifiableList(Arrays.asList(values())); private final int id; private final String name; private ActivityStatus(int id, String name) { this.id = id; this.name = name; } public static List<ActivityStatus> valuesList() { return VALUES_LIST; } public int getId() { return id; } public String getName() { return name; } public static ActivityStatus fromId(int id) { for (ActivityStatus item : values()) { if (item.id == id) { return item; } } return null; } }