package javax.megaco.message.descriptor; import java.io.Serializable; /** * Mux type constants used in package javax.megaco.message.descriptor. This * defines the mux type for the megaco package. */ public class MuxType implements Serializable { /** * Identifies mux type to be h221. Its value shall be set to 0. */ public static final int M_H221 = 0; /** * Identifies mux type to be h223. Its value shall be set to 1. */ public static final int M_H223 = 1; /** * Identifies mux type to be "h226". Its value shall be set to 2. */ public static final int M_H226 = 2; /** * Identifies mux type to be "v76". Its value shall be set to 3. */ public static final int M_V76 = 3; /** * Identifies mux type to be "extension". Its value shall be set to 4. */ public static final int M_EXT = 4; /** * Identifies a Mux Type object that constructs the class with the constant * M_H221. Since it is reference to static final object, it * prevents further instantiation of the same object in the system. */ public static final MuxType H221 = new MuxType(M_H221); /** * Identifies a Mux Type object that constructs the class with the constant * M_H223. Since it is reference to static final object, it * prevents further instantiation of the same object in the system. */ public static final MuxType H223 = new MuxType(M_H223); /** * Identifies a Mux Type object that constructs the class with the constant * M_H226. Since it is reference to static final object, it * prevents further instantiation of the same object in the system. */ public static final MuxType H226 = new MuxType(M_H226); /** * Identifies a Mux Type object that constructs the class with the constant * M_V76. Since it is reference to static final object, it prevents * further instantiation of the same object in the system. */ public static final MuxType V76 = new MuxType(M_V76); /** * Identifies a Mux Type object that constructs the class with the constant * M_EXT. Since it is reference to static final object, it prevents * further instantiation of the same object in the system. */ public static final MuxType EXT = new MuxType(M_EXT); private int muxType = -1; /** * Constructs an class that specifies the mux type in the Mux descriptor. * * @param mux_type */ private MuxType(int mux_type) { this.muxType = mux_type; } /** * This method returns one of the static field constants defined in this * class. * * @return Returns an integer value that identifies the mux type to be one * of h221 or h223 or h226 or v26 or extension. */ public int getMuxType() { return this.muxType; } /** * Returns reference of the MuxType object that identifies the mux type 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 MuxType object. * @throws IllegalArgumentException * - If the value passed to this method is invalid, then this * exception is raised. */ public static final MuxType getObject(int value) throws IllegalArgumentException { switch (value) { case M_EXT: return EXT; case M_H221: return H221; case M_H223: return H223; case M_H226: return H226; case M_V76: return V76; default: throw new IllegalArgumentException("Wrong mux type passed: " + 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.muxType); } @Override public String toString() { switch (this.muxType) { case M_EXT: return "MuxType[EXT]"; case M_H221: return "MuxType[H221]"; case M_H223: return "MuxType[H223]"; case M_H226: return "MuxType[H226]"; case M_V76: return "MuxType[V76]"; default: return "MuxType[" + this.muxType + "]"; } } }