package javax.megaco.message.descriptor;
import java.io.Serializable;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import javax.megaco.message.Descriptor;
import javax.megaco.message.DescriptorType;
/**
*
* The class extends JAIN MEGACO Descriptor. This class describes the audit
* capability response descriptor. It specifies the tokens and descriptors for
* audit capability response.
*/
public class AuditCapRespDescriptor extends Descriptor implements Serializable {
private boolean obsEventToken;
private boolean eventsToken;
private boolean statsToken;
private boolean eventBuffToken;
private boolean signalToken;
private boolean mediaToken;
private boolean modemTokenPresent;
private boolean muxToken;
private Descriptor[] descriptors;
/**
* 1. Media Descriptor <br>
* 2. Modem Descriptor <br>
* 3. Mux Descriptor <br>
* 4. Events Descriptor <br>
* 5. Signal Descriptor <br>
* 6. Observed Events Descriptor <br>
* 7. Event Buffer Descriptor <br>
* 8. Statistics Descriptor <br>
* 9. Error Descriptor
**/
private static final Set<Integer> allowedDescritpors;
static {
Set<Integer> tmps = new HashSet<Integer>();
tmps.add(DescriptorType.M_MEDIA_DESC);
tmps.add(DescriptorType.M_MODEM_DESC);
tmps.add(DescriptorType.M_MUX_DESC);
tmps.add(DescriptorType.M_EVENT_DESC);
tmps.add(DescriptorType.M_SIGNAL_DESC);
tmps.add(DescriptorType.M_OBSERVED_EVENT_DESC);
tmps.add(DescriptorType.M_EVENT_BUF_DESC);
tmps.add(DescriptorType.M_STATISTICS_DESC);
tmps.add(DescriptorType.M_ERROR_DESC);
allowedDescritpors = Collections.unmodifiableSet(tmps);
}
/**
* Constructs a Audit Capability response Descriptor. It specifies the
* tokens for which the audit capability is required.
*/
public AuditCapRespDescriptor() {
super.descriptorId = DescriptorType.M_AUDIT_CAP_REPLY_DESC;
}
/**
* This method cannot be overridden by the derived class. This method
* returns that the descriptor identifier is of type audit capability
* response descriptor. This method overrides the corresponding method of
* the base class Descriptor.
*
* @return Returns an integer value that identifies this object of the type
* of audit capability response descriptor. It returns that it is
* audit capability response Descriptor i.e.,
* M_AUDIT_CAP_REPLY_DESC.
*/
public int getDescriptorId() {
return super.descriptorId;
}
/**
* Gets the Descriptor information for all the descriptor in this audit
* response parameter.
*
* @return The vector of the reference to the object identifier of type
* descriptor information.
*/
public Descriptor[] getDescriptor() {
return this.descriptors;
}
/**
* Sets the vector of Descriptor Information for this audit response
* parameter. Only valid descriptors are <br>
* <br>
* 1. Media Descriptor <br>
* 2. Modem Descriptor <br>
* 3. Mux Descriptor <br>
* 4. Events Descriptor <br>
* 5. Signal Descriptor <br>
* 6. Observed Events Descriptor <br>
* 7. Event Buffer Descriptor <br>
* 8. Statistics Descriptor <br>
* 9. Error Descriptor
*
* @param descriptor
* The vector of reference to the object identifier of type
* descriptor information.
* @throws IllegalArgumentException
* if the descriptor passed to this method is invalid.
*/
public void setDescriptor(Descriptor[] descriptors) throws IllegalArgumentException {
if(descriptors == null)
{
throw new IllegalArgumentException("Descriptor[] must not be null.");
}
if(descriptors.length == 0)
{
throw new IllegalArgumentException("Descriptor[] must not be empty.");
}
int count =0;
for(Descriptor d: descriptors)
{
if(d == null)
{
throw new IllegalArgumentException("Descriptor["+count+"] is null!");
}
if(!allowedDescritpors.contains(d.getDescriptorId()))
{
throw new IllegalArgumentException("Descriptor["+count+"] is is of wrong type, its not allowed: "+d.toString());
}
count++;
}
this.descriptors = descriptors;
}
/**
* This method cannot be overridden by the derived class. This method
* indicates if the mux token is present or not.
*
* @return Returns TRUE if the Mux token is present.
*/
public final boolean isMuxTokenPresent() {
return this.muxToken;
}
/**
* This method cannot be overridden by the derived class. This method sets a
* flag to indicate that the mux token is present.
*/
public final void setMuxToken() {
this.muxToken = true;
}
/**
* This method cannot be overridden by the derived class. This method
* indicates if the Modem token is present or not.
*
* @return Returns TRUE if the Modem token is present.
*/
public final boolean isModemTokenPresent() {
return this.modemTokenPresent;
}
/**
* This method cannot be overridden by the derived class. This method sets a
* flag to indicate that the Modem token is present.
*/
public final void setModemToken() {
this.modemTokenPresent = true;
}
/**
* This method cannot be overridden by the derived class. This method
* indicates if the Media token is present or not.
*
* @return Returns TRUE if the Media token is present.
*/
public final boolean isMediaTokenPresent() {
return this.mediaToken;
}
/**
* This method cannot be overridden by the derived class. This method sets a
* flag to indicate that the Media token is present.
*/
public final void setMediaToken() {
this.mediaToken = true;
}
/**
* This method cannot be overridden by the derived class. This method
* indicates if the Signal token is present or not.
*
* @return Returns TRUE if the Signal token is present.
*/
public final boolean isSignalTokenPresent() {
return this.signalToken;
}
/**
* This method cannot be overridden by the derived class. This method sets a
* flag to indicate that the Signal token is present.
*/
public final void setSignalToken() {
this.signalToken = true;
}
/**
* This method cannot be overridden by the derived class. This method
* indicates if the Event Buffer token is present or not.
*
* @return Returns TRUE if the Event Buffer token is present.
*/
public final boolean isEventBuffTokenPresent() {
return this.eventBuffToken;
}
/**
* This method cannot be overridden by the derived class. This method sets a
* flag to indicate that the Event Buffer token is present.
*/
public final void setEventBuffToken() {
this.eventBuffToken = true;
}
/**
* This method cannot be overridden by the derived class. This method
* indicates if the Statistics token is present or not.
*
* @return Returns TRUE if the Statistics token is present.
*/
public final boolean isStatsTokenPresent() {
return this.statsToken;
}
/**
* This method cannot be overridden by the derived class. This method sets a
* flag to indicate that the Statistics token is present.
*/
public final void setStatsToken() {
this.statsToken = true;
}
/**
* This method cannot be overridden by the derived class. This method
* indicates if the Events token is present or not.
*
* @return Returns TRUE if the Events token is present.
*/
public final boolean isEventsTokenPresent() {
return this.eventsToken;
}
/**
* This method cannot be overridden by the derived class. This method sets a
* flag to indicate that the Events token is present.
*/
public final void setEventsToken() {
this.eventsToken = true;
}
/**
* This method cannot be overridden by the derived class. This method
* indicates if the Observed Event token is present or not.
*
* @return Returns TRUE if the Observed Event token is present.
*/
public final boolean isObsEventTokenPresent() {
return this.obsEventToken;
}
/**
* This method cannot be overridden by the derived class. This method sets a
* flag to indicate that the Observed Event token is present.
*/
public final void setObsEventToken() {
this.obsEventToken = true;
}
}