/protocols/jain-megaco/megaco-api/src/main/java/javax/megaco/association/AssociationInd.java
Java | 506 lines | 163 code | 46 blank | 297 comment | 24 complexity | c903b8bbe9a5fa329f700f1820087d60 MD5 | raw file
Possible License(s): LGPL-3.0, GPL-3.0, LGPL-2.1, GPL-2.0, CC-BY-SA-3.0, CC0-1.0, Apache-2.0, BSD-3-Clause
- package javax.megaco.association;
-
- import javax.megaco.AssociationEvent;
-
- import javax.megaco.ParameterNotSetException;
-
- public class AssociationInd extends AssociationEvent {
-
- protected AssocIndReason assocIndReason = null;
- protected LocalAddr localAddr = null;
- protected SrvChngReason srvChangeReason = null;
- protected LocalAddr srvChngAddress = null;
- protected LocalAddr handOffMGCId = null;
- protected AssocState assocState = null;
- protected SrvChngReason srvChngMethod = null;
- protected String srvChngMethodExtension = null;
- protected RemoteAddr remoteAddr = null;
- protected Integer srvChngDelay = null;
- protected Integer protocolVersion = null;
- protected String srvChngProfile = null;
- protected String parameterExtension = null;
-
- /**
- * Constructs an Association Indication Event object.
- *
- * @param source
- * - A reference to the object, the "source", that is logically
- * deemed to be the object upon which the Event in question
- * initially occurred.
- * @param assocHandle
- * - The association handle to uniquely identify the MG-MGC pair.
- * This is allocated by the stack when the Listener registers
- * with the provider with a unique MG-MGC identity.
- * @param assocIndReason
- * - This indicates the reason for the change in the state of the
- * association.
- * @throws IllegalArgumentException
- * This exception is raised if the reference of Association
- * Indication Reason passed to this method is NULL.
- */
- public AssociationInd(Object source, int assocHandle,
- AssocIndReason assocIndReason) throws IllegalArgumentException {
- super(source, assocHandle);
- if (assocIndReason == null) {
- throw new IllegalArgumentException("assocIndReason can not be null");
- }
-
- this.assocIndReason = assocIndReason;
-
- }
-
- @Override
- public int getAssocOperIdentifier() {
- return AssocEventType.M_ASSOC_STATE_IND;
- }
-
- /**
- * Gets the local entity transport address. The local address specifies the
- * transport address which the stack would use to send MEGACO messages to
- * peer.
- *
- * @return Returns the local entity transport address. If the local address
- * field is not present, then this method would return NULL.
- */
- public LocalAddr getLocalAddr() {
- return localAddr;
- }
-
- /**
- * This method sets the local entity identity. The localAddr specifies the
- * transport address which the stack would use to send transactions to peer.
- *
- * @param localAddr
- * localAddr - The local entity transport address. Since the
- * format of the message header Id is same as that of the
- * transport address, the value of this may or may not be
- * different from the local entity configured in the user Id as
- * specified in the addMegacoListener method of MegacoProvider
- * interface.
- * @throws IllegalArgumentException
- * This exception is raised if the local transport address
- * specified is invalid.
- */
- public void setLocalAddr(LocalAddr localAddr)
- throws IllegalArgumentException {
- this.localAddr = localAddr;
- }
-
- /**
- * Gets the integer value which identifies the service change reason. This
- * parameter is required on if the application is MG. The MG stack would use
- * the same ServiceChange Reason in the ServiceChange command request sent
- * to peer MGC.
- *
- * @return Returns the integer value corresponding to the service change
- * reason. If the ServiceChangeReason is not set, then this method
- * would return value 0. The possible values are field constants
- * defined for the class {@link SrvChngReason}.
- */
- public int getSrvChangeReason() {
- return srvChangeReason == null ? 0 : srvChangeReason
- .getSrvChngReasonId();
- }
-
- /**
- * This method sets the service change reason. This parameter is required on
- * if the application is MG. The MG stack would use the same ServiceChange
- * Reason in the ServiceChange command request sent to peer MGC.
- *
- * @param reason
- * - The object reference to ServiceChange Reason.
- * @throws IllegalArgumentException
- * This exception is raised if the reference of Service Change
- * Reason passed to this method is NULL.
- */
- public void setSrvChangeReason(SrvChngReason reason)
- throws IllegalArgumentException {
- if (reason == null) {
- throw new IllegalArgumentException("Change reason can not be null");
- }
- this.srvChangeReason = reason;
- }
-
- /**
- * Gets the service change address.
- *
- * @return Returns the service change address. if the service change address
- * is not set, then this method would return NULL.
- */
- public LocalAddr getSrvChngAddress() {
- return srvChngAddress;
- }
-
- /**
- * This method sets the service change address. The local entity specfied
- * earlier is the transport address would be used for initial registration
- * and then subsequently, the address specified in the serviceChngAddress
- * field would be used for the local transport address. If the application
- * is MGC, then on receipt of ServiceChange command (on ROOT termination),
- * it will reply with ServiceChangeAddress field in
- * serviceChangeReplyDescriptor descriptor, with value as set using this
- * method. And If the application is MG, then the stack will send the
- * ServiceChange command (on ROOT termination) with ServiceChangeAddress
- * field in serviceChangeDescriptor descriptor, with value as set using this
- * method.
- *
- * @param srvChngAddress
- * The service change address.
- * @throws IllegalArgumentException
- * This exception is raised if the service change address
- * specified is invalid.
- */
- public void setSrvChngAddress(LocalAddr srvChngAddress)
- throws IllegalArgumentException {
- // FIXME: IllegalArgumentException
- this.srvChngAddress = srvChngAddress;
- }
-
- /**
- * Gets the identity of the MGC to which the association is to be handoffed.
- * This parameter may be set if the application is MGC.
- *
- * @return Returns the identity of the MGC to which the association is to be
- * handoffed. If the HandedOff MGC Id is missing, then method
- * returns NULL.
- */
- public LocalAddr getHandOffMGCId() {
- return handOffMGCId;
- }
-
- /**
- * This method sets the identity of the MGC to which the association is to
- * be handoffed. This parameter may be set if the application is MGC. If
- * this parameter is set, then on receipt of service change request from MG
- * (with ROOT termination), the stack will reply with MgcIdToTry field in
- * serviceChangeDescriptor descriptor, with value as set using this method.
- *
- * @param handOffMGCId
- * The identity of the MGC to which the association is to be
- * handoffed.
- * @throws IllegalArgumentException
- * This exception is raised if the HandedOffMGCId specified is
- * invalid.
- */
- public void setHandOffMGCId(LocalAddr handOffMGCId)
- throws IllegalArgumentException {
- // FIXME: IllegalArgumentException
- this.handOffMGCId = handOffMGCId;
- }
-
- // FIXME: jdoc say it returns int, all other methods do....
- /**
- * Gets the object reference of association state.
- *
- * @return Returns the integer value of association state. The values of the
- * association state are defined in AssocState. The association
- * state is to be set mandatorily. If the assoc state field is
- * missing, then this method would return NULL.
- */
- public AssocState getAssociationState() {
- return this.assocState;
- }
-
- /**
- * This method sets the association state. The values of the association
- * state are defined in AssocState. The association state is to be set
- * mandatorily.
- *
- * @param associationState
- * The object reference of association state.
- * @throws IllegalArgumentException
- * This exception is raised if the reference of Association
- * State passed to this method is NULL.
- */
- public void setAssociationState(AssocState associationState)
- throws IllegalArgumentException {
- if (associationState == null) {
- throw new IllegalArgumentException("Value can not be null");
- }
- this.assocState = associationState;
- }
-
- /**
- * Gets the integer value which identifies the service change method. This
- * parameter is required on if the application is MG. The MG stack would use
- * the same ServiceChange Method in ServiceChange command request sent to
- * peer MGC.
- *
- * @return Returns the integer value corresponding to the service change
- * method. If the ServiceChangeMethod is not set, then this method
- * would return value 0. The possible values are field constants
- * defined for the class SrvChngMethod.
- */
- public int getSrvChngMethod() {
- return srvChngMethod == null ? 0 : srvChngMethod.getSrvChngReasonId();
- }
-
- /**
- * This method sets the service change method. This parameter is required on
- * if the application is MG. The MG stack would use the same ServiceChange
- * Method in ServiceChange command request sent to peer MGC.
- *
- * @param method
- * - The object reference to ServiceChange Method.
- * @throws IllegalArgumentException
- * This exception is raised if the reference of Service Change
- * Reason passed to this method is NULL.
- */
- public void setSrvChngMethod(SrvChngReason method)
- throws IllegalArgumentException {
- if (method == null) {
- throw new IllegalArgumentException("Change method can not be null");
- }
- this.srvChngMethod = method;
- }
-
- /**
- * Gets the string value of the extended service change method.
- *
- *
- * @return Returns string value of the extended service change method. This
- * is to be set only if the service change method is set to
- * {@link javax.megaco.association.SrvChngMethod.M_EXTENSION}.
- * @throws javax.megaco.association.MethodExtensionException
- * javax.megaco.association.MethodExtensionException - Thrown if
- * service change method has not been set to
- * {@link javax.megaco.association.SrvChngMethod.M_EXTENSION}
- */
- public java.lang.String getSrvChngMethodExtension()
- throws javax.megaco.association.MethodExtensionException,
- IllegalArgumentException {
- if (getSrvChngMethod() != SrvChngMethod.M_EXTENSION) {
- throw new MethodExtensionException(
- "Changed Method is not equal to {@link javax.megaco.association.SrvChngMethod.M_EXTENSION}");
- }
-
- return this.srvChngMethodExtension;
- }
-
- /**
- * This method sets the extended service change method. This needs to be set
- * if and only if the service change method is {@link javax.megaco.association.SrvChngMethod.M_EXTENSION}.
- *
- * @param extMethod
- * - The string value of the extended service change method.
- * @throws javax.megaco.association.MethodExtensionException
- * - Thrown if service change method has not been set to
- * {@link javax.megaco.association.SrvChngMethod.M_EXTENSION}.
- * @throws IllegalArgumentException
- * - Thrown if extension string does not follow the rules of the
- * extension parameter, e.g, should start with X+ or X- etc.
- */
- public void setSrvChngMethodExtension(java.lang.String extMethod)
- throws javax.megaco.association.MethodExtensionException,
- IllegalArgumentException {
- if (getSrvChngMethod() != SrvChngMethod.M_EXTENSION) {
- throw new MethodExtensionException(
- "Changed Method is not equal to SrvChngMethod.{@link javax.megaco.association.SrvChngMethod.M_EXTENSION}");
- }
- // FIXME IllegalArgumentException - Thrown if extension
- // string does not follow the rules of the extension parameter, e.g,
- // should start with X+ or X- etc.
-
-
- this.srvChngMethodExtension = extMethod;
- }
-
- /**
- * Gets the List of remote entity transport address for the User Id. The
- * remote address specified in the address to which the stack would send
- * MEGACO messages. There is one to one correspondence between the list of
- * remote address specified here and the list of remote entity Ids in the
- * UserId class. The messages comming from a particular remote entity must
- * have same message header Id as the corresponding remote entity Id in
- * UserId class.
- *
- * @return Returns the list of remote entity transport address. If the
- * remote address parameter is not present, then this method would
- * return NULL.
- */
- public RemoteAddr getRemoteAddr() {
- return remoteAddr;
- }
-
- /**
- * Sets the list of remote entity identities of the user Id. The remote
- * address specified in the address to which the stack would send MEGACO
- * messages. There is one to one correspondence between the list of remote
- * address specified here and the list of remote entity Ids in the UserId
- * class. The messages comming from a particular remote entity must have
- * same message header Id as the corresponding remote entity Id in UserId
- * class.
- *
- * @param remoteAddr
- * -- List of remote entity transport addresses of the MGC/MG.
- * @throws IllegalArgumentException
- * This exception is raised if the reference of Remote Address
- * passed to this method is NULL.
- */
- public void setRemoteAddr(RemoteAddr remoteAddr)
- throws IllegalArgumentException {
- this.remoteAddr = remoteAddr;
- }
-
- /**
- * Gets the integer value of the delay parameter for the service change.
- * This is in milliseconds. This method must be invoked after invoking the
- * isSrvChngdelayPresent() method. The stack would use the same as the
- * ServiceChangeDelay in the ServiceChange command request sent to peer.
- *
- * @return Returns the integer value of the delay value in milliseconds.
- * @throws javax.megaco.ParameterNotSetException
- * This exception is raised if the service change delay
- * parameter has not been set.
- */
- public int getSrvChngDelay() throws javax.megaco.ParameterNotSetException {
- if (!isSrvChngDelayPresent()) {
- throw new ParameterNotSetException();
- }
-
- return this.srvChngDelay;
- }
-
- /**
- * Sets the integer value of the delay parameter for the service change.
- * This is in milliseconds. This automatically sets the service change delay
- * value to be present. The stack would use the same as the
- * ServiceChangeDelay in the ServiceChange command request sent to peer.
- *
- *
- * @param delay
- * - The integer value of the delay value in milliseconds.
- * @throws IllegalArgumentException
- * This exception is raised if the value of service change delay
- * passed to this method is less than 0.
- */
- public void setSrvChngDelay(int delay)
- throws IllegalArgumentException {
- if (delay < 0) {
- throw new IllegalArgumentException(
- "Delay can not be less than zero");
- }
-
- this.srvChngDelay = delay;
-
- }
-
- /**
- * Returns TRUE if the service change delay parameter is present.
- *
- * @return TRUE if service change delay parameter has been set, else returns
- * FALSE.
- */
- public boolean isSrvChngDelayPresent() {
- return this.srvChngDelay != null;
- }
-
- /**
- * This method sets the protocol version value that is to be used for the
- * specified association.
- *
- * @param version
- * The protocol version as an integer value.
- * @throws IllegalArgumentException
- * This exception is raised if the value of protocol version
- * passed to this method is less than 0.
- */
- public void setProtocolVersion(int version)
- throws IllegalArgumentException {
- if (version < 0) {
- throw new IllegalArgumentException(
- "Value can not be less than zero");
- }
-
- this.protocolVersion = version;
- }
-
- /**
- * Identifies whether the protocol version is present.
- *
- * @return Returns true if the protocol version is present.
- */
- public boolean isProtocolVersionPresent() {
- return this.protocolVersion != null;
- }
-
- /**
- * Gets the protocol version value received from peer in the service change.
- * This is ther protocol version after negotiation.
- *
- * @return Returns the protocol version parameter as an integer value.
- * @throws javax.megaco.ParameterNotSetException
- * This exception is raised if the service change delay has not
- * been specified.
- */
- public int getProtocolVersion()
- throws javax.megaco.ParameterNotSetException {
- if (!isProtocolVersionPresent()) {
- throw new ParameterNotSetException();
- }
-
- return this.protocolVersion;
- }
-
- /**
- * Gets the service change profile value to be sent to peer in the service
- * change.
- *
- * @return Returns the service change profile parameter as a string value.
- * If service change profile is not set then a NULL value is
- * returned.
- */
- public java.lang.String getSrvChngProfile() {
- return this.srvChngProfile;
- }
-
- public void setSrvChngProfile(java.lang.String profile)
- throws IllegalArgumentException {
- if (profile == null)
- throw new IllegalArgumentException("Value can not be null");
- this.srvChngProfile = profile;
- }
-
- /**
- * Gets the string value of the extended service change parameter.
- *
- * @return Returns string value of the extended service change parameter. If
- * the service change parameter is not set then this a NULL value is
- * returned.
- */
- public String getParameterExtension() {
- return parameterExtension;
- }
-
- /**
- * This method sets the extended service change parameter.
- *
- * @param extMethod
- * - The string value of the extended service change parameter.
- * @throws IllegalArgumentException
- * Thrown if extension string does not follow the rules of the
- * extension parameter, e.g, should start with X+ or X- etc.
- */
- public void setParameterExtension(java.lang.String profile)
- throws IllegalArgumentException {
- if (profile == null)
- throw new IllegalArgumentException("Value can not be null");
- // FIXME:IllegalArgumentException - Thrown if extension
- // string does not follow the rules of the extension parameter, e.g,
- // should start with X+ or X- etc.
-
- this.parameterExtension = profile;
- }
-
- /**
- * This method returns the reference of the AssocIndReason object as set for
- * this class in the constructor.
- *
- * @return Reference of AssocIndReason object.
- */
- public AssocIndReason getAssocIndReason() {
- return this.assocIndReason;
- }
-
-
- }