package javax.megaco.message.descriptor;
import javax.megaco.MethodInvocationException;
/**
* The EventParam object is a class that shall be used to set the signal
* descriptor, digitMap descriptor, stream id, whether keep alive is active or
* not, package name, event id and the associated parameter names and values.
* The class optionally provides interface to specify the package name, item
* name and the associated parameters in the string format. This is an
* independent class derived from java.util.Object and shall not have any
* derived classes.
*/
public class EventParam {
private SignalDescriptor signalDescriptor = null;
private Integer streamId = null;
private Boolean keepActive = new Boolean(false);
private DigitMapDescriptor digitMapDescriptor = new DigitMapDescriptor();
/**
* Constructs an object of type event parameter which shall be used within
* the event descriptor.
*/
public EventParam() {
super();
// TODO Auto-generated constructor stub
}
/**
* The method can be used to get the signal descriptor.
*
* @return signalDesc - The reference to the object corresponding to the
* signal descriptor. This shall be returned only if the signal
* descriptor is present in the event parameter of the event
* descriptor.
*/
public SignalDescriptor getSignalDescriptor() {
return this.signalDescriptor;
}
/**
* The method can be used to get the embedded digit map name in the event
* descriptor. Only one of digit map name or digit map value shall be set.
*
* @return The reference to the embedded digitMap name. If this value is not
* set, then this method would return NULL.
*/
public java.lang.String getDigitMapName() {
return this.digitMapDescriptor.getDigitMapName();
}
/**
* The method can be used to get the embedded digit map value in the event
* descriptor. Only one of digit map name or digit map value shall be set.
*
* @return The reference to the embedded digitMap value. If this value is
* not set, then this method would return NULL.
*/
public DigitMapValue getDigitMapValue() {
return this.digitMapDescriptor.getDigitMapValue();
}
/**
* The method can be used to get the embedded digit map value in the event
* descriptor. Only one of digit map name or digit map value shall be set.
*
* @return The reference to the embedded digitMap value. If this value is
* not set, then this method would return NULL.
*/
public java.lang.String getDigitMapValueStr() {
return this.digitMapDescriptor.getDigitMapValueStr();
}
/**
* The method can be used to get stream id in the event descriptor.
*
* @return streamId - The integer value of the stream id shall be returned.
* This shall be returned only if the streamId is present in the
* event parameter of the event descriptor.
* @throws IllegalStateException
* - Thrown if streamId has not been set. Thus this method
* should be called only after verifying that the streamId is
* set using isStreamIdPresent()
*/
public int getStreamId() throws IllegalStateException {
if (streamId == null) {
throw new IllegalStateException("StreamId must be set.");
}
return this.streamId.intValue();
}
/**
* The method can be used to set the signal descriptor within the event
* descriptor.
*
* @param signalDesc
* - The reference to the object corresponding to the signal
* descriptor.
* @throws IllegalArgumentException
* - Thrown if parameters set in the signal descriptor are such
* that the object cannot be set for the event descriptor.
*/
public void setSignalDescriptor(SignalDescriptor signalDesc) throws IllegalArgumentException {
// FIXME: add checks
this.signalDescriptor = signalDesc;
}
/**
* The method can be used to set the digit map name. Only one of digit map
* name or digit map value shall be set. This automatically sets the value
* of digitMap descriptor present in the event parameter object to true. If
* digitmap value is already set, then this method would raise an exception.
*
* @param digitMapName
* - The reference to the object corresponding to the digitMap
* name.
* @throws IllegalArgumentException
* - Thrown if digit Map value has already been set. The
* protocol allows only either of them but not both.
*/
public void setDigitMapName(java.lang.String digitMapName) throws IllegalArgumentException {
if (this.digitMapDescriptor.getDigitMapValue() != null) {
throw new IllegalArgumentException("Digit map value must not be present when name is set.");
}
this.digitMapDescriptor.setDigitMapName(digitMapName);
}
/**
* The method can be used to set the digit map value. Only one of digit map
* name or digit map value shall be set. This automatically sets the value
* of digitMap descriptor present in the event parameter object to true. If
* digitmap name is already set, then this method would raise an exception.
*
* @param digitMapValue
* - The reference to the object corresponding to the digitMap
* value.
* @throws IllegalArgumentException
* - Thrown if digit Map name has already been set. The protocol
* allows only either of them but not both.
*/
public void setDigitMapValue(DigitMapValue digitMapValue) throws IllegalArgumentException {
if (this.digitMapDescriptor.getDigitMapName() != null) {
throw new IllegalArgumentException("Digit map name must not be present when value is set.");
}
this.digitMapDescriptor.setDigitMapValue(digitMapValue);
}
/**
* The method can be used to set the digit map value. Only one of digit map
* name or digit map value shall be set. This automatically sets the value
* of digitMap descriptor present in the event parameter object to true. If
* digitmap name is already set, then this method would raise an exception.
*
* @param digitMapValue
* - The reference to the object corresponding to the digitMap
* value.
* @throws IllegalArgumentException
* - Thrown if digit Map name has already been set. The protocol
* allows only either of them but not both.
*/
public void setDigitMapValueStr(java.lang.String digitMapValue) throws IllegalArgumentException {
if (this.digitMapDescriptor.getDigitMapName() != null) {
throw new IllegalArgumentException("Digit map name must not be present when digit map string is set.");
}
this.digitMapDescriptor.setDigitMapValueStr(digitMapValue);
}
/**
* The method can be used to set stream id in the event descriptor. This
* automatically sets the value of stream id present in the event parameter
* object to true.
*
* @param streamId
* - The integer value of the stream id shall be set.
* @throws IllegalArgumentException
* - Thrown if streamId is set with an invalid value.
*/
public void setStreamId(int streamId) throws IllegalArgumentException {
// FIXME: what invalid value?
this.streamId = new Integer(streamId);
}
/**
* The method can be used to find if the stream id is present in the current
* object.
*
* @return Returns true if the stream id is present. This needs to be
* checked before getting the stream id from this object.
*/
public boolean isStreamIdPresent() {
return this.streamId != null;
}
/**
* The method can be used to set Keep Active flag in the event descriptor.
*/
public void setKeepActive() {
this.keepActive = new Boolean(true);
}
/**
* The method can be used to find if the Keep Active is present in the
* current object.
*
* @return Returns true if the Keep Active is present.
*/
public boolean isKeepActivePresent() {
return this.keepActive.booleanValue();
}
@Override
public java.lang.String toString() {
return this.getClass().getSimpleName() + " : StreamId = " + this.streamId + " : KeepActive = " + this.keepActive + " : SignalDesc[ " + this.signalDescriptor + " ] : DigitMapDescriptor[ "
+ this.digitMapDescriptor + " ]";
}
}