package javax.megaco.message.descriptor; import java.io.Serializable; /** * Service state constants used in package javax.megaco.message.descriptor. This * defines the service state for the megaco package. */ public class ServiceState implements Serializable { /** * Identifies service state to be out of service. Its value shall be set to * 0. */ public static final int M_OOS = 0; /** * Identifies service state to be in-service. Its value shall be set to 1. */ public static final int M_INS = 1; /** * Identifies service state to be "test". Its value shall be set to 2. */ public static final int M_TEST = 2; /** * Identifies a ServiceState object that constructs the class with the * constant M_OOS. Since it is reference to static final * object, it prevents further instantiation of the same object in the * system. */ public static final ServiceState OOS = new ServiceState(M_OOS); /** * Identifies a ServiceState object that constructs the class with the * constant M_INS. Since it is reference to static final * object, it prevents further instantiation of the same object in the * system. */ public static final ServiceState INS = new ServiceState(M_INS); /** * Identifies a ServiceState object that constructs the class with the * constant M_TEST. Since it is reference to static final * object, it prevents further instantiation of the same object in the * system. */ public static final ServiceState TEST = new ServiceState(M_TEST); private int serviceState = -1; /** * Constructs an class that specifies the service state in the termination * state descriptor. * * @param service_state */ private ServiceState(int service_state) { this.serviceState = service_state; } /** * This method returns one of the static field constants defined in this * class. * * @return Returns an integer value that identifies the service state to be * one of out of service or in-service or test. */ public int getServiceState() { return this.serviceState; } /** * Returns reference of the ServiceState object that identifies the service * state as value passed to this method. * * @param value * - It is one of the possible values of the static constant that * this class provides. * @return Returns reference of the ServiceState object. * @throws IllegalArgumentException * - If the value passed to this method is invalid, then this * exception is raised. */ public static final ServiceState getObject(int value) throws IllegalArgumentException { switch (value) { case M_INS: return INS; case M_OOS: return OOS; case M_TEST: return TEST; default: throw new IllegalArgumentException("Wrong value of service state: " + value); } } /** * This method must be implemented to perform instance substitution during * serialization. This method is required for reference comparison. This * method if not implimented will simply fail each time we compare an * Enumeration value against a de-serialized Enumeration instance. * * @return */ private Object readResolve() { return getObject(this.serviceState); } @Override public String toString() { switch (this.serviceState) { case M_INS: return "ServiceState[INS]"; case M_OOS: return "ServiceState[OOS]"; case M_TEST: return "ServiceState[TEST]"; default: return "ServiceState["+this.serviceState+"]"; } } }