/* * Copyright (C) 2004, 2005 Joe Walnes. * Copyright (C) 2006, 2007 XStream Committers. * All rights reserved. * * The software in this package is published under the terms of the BSD * style license a copy of which has been included with this distribution in * the LICENSE.txt file. * * Created on 30. May 2004 by Joe Walnes */ package com.thoughtworks.acceptance.objects; import java.io.Serializable; import java.util.Arrays; import java.util.Collections; import java.util.List; public class StatusEnum implements Serializable, Comparable { private static int nextOrdinal = 0; private int ordinal = nextOrdinal++; public static final StatusEnum STARTED = new StatusEnum("STARTED"); public static final StatusEnum FINISHED = new StatusEnum("FINISHED"); private static final StatusEnum[] PRIVATE_VALUES = {STARTED, FINISHED}; public static final List VALUES = Collections.unmodifiableList(Arrays.asList(PRIVATE_VALUES)); private String name; // for debug only private StatusEnum() { } private StatusEnum(String name) { this.name = name; } public String toString() { return name; } public int compareTo(Object o) { return ordinal - ((StatusEnum) o).ordinal; } private Object readResolve() { return PRIVATE_VALUES[ordinal]; //Canonicalize } }