package javax.megaco.message.descriptor;
import java.io.Serializable;
/**
* Signal Param type class defines all the static constants for the signal param
* type for the megaco package.
*/
public class SignalParamType implements Serializable {
/**
* Identifies signal param type to be list. Its value shall be set to 1.
*/
public static final int M_LIST = 1;
/**
* Identifies signal param type to be request. Its value shall be set to 2.
*/
public static final int M_REQUEST = 2;
/**
* Identifies a MegacoSignalParamType object that constructs the class with
* the constant M_LIST. Since it is reference to static final
* object, it prevents further instantiation of the same object in the
* system.
*/
public static final SignalParamType LIST = new SignalParamType(M_LIST);
/**
* Identifies a MegacoSignalParamType object that constructs the class with
* the constant M_REQUEST. Since it is reference to static
* final object, it prevents further instantiation of the same object in the
* system.
*/
public static final SignalParamType REQUEST = new SignalParamType(M_REQUEST);
private int signalParamType = -1;
/**
* Constructs an class that specifies the signal param type in the signal
* descriptor.
*
* @param signal_type
*/
private SignalParamType(int type) {
this.signalParamType = type;
}
/**
* This method returns one of the static field constants defined in this
* class.
*
* @return Returns an integer value that identifies the signal type to be
* one of brief or on-off or other.
*/
public int getsignalParamType() {
return this.signalParamType;
}
/**
* Returns reference of the SignalParamType object that identifies the
* signal 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 signalParamType object.
* @throws IllegalArgumentException
* - If the value passed to this method is invalid, then this
* exception is raised.
*/
public static final SignalParamType getObject(int value) throws IllegalArgumentException {
switch (value) {
case M_LIST:
return LIST;
case M_REQUEST:
return REQUEST;
default:
throw new IllegalArgumentException("Wrong signal param type passed: " + value);
}
}
private Object readResolve() {
return this.getObject(this.signalParamType);
}
@Override
public String toString() {
switch (this.signalParamType) {
case M_LIST:
return "SignalParamType[LIST]";
case M_REQUEST:
return "SignalParamType[REQUEST]";
default:
return "SignalParamType[" + this.signalParamType + "]";
}
}
}