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
* value response descriptor. It specifies the tokens and descriptors for audit
* value response.
*/
public class AuditValRespDescriptor 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 boolean digitMapToken;
private boolean packagesToken;
private Descriptor[] descriptors;
/**
* * <br>
* 1. Media Descriptor<br>
* 2. Modem Descriptor<br>
* 3. Mux Descriptor<br>
* 4. Events Descriptor<br>
* 5. Signal Descriptor<br>
* 6. Digit Map Descriptor<br>
* 7. Observed Events Descriptor<br>
* 8. Event Buffer Descriptor<br>
* 9. Statistics Descriptor<br>
* 10. Package Descriptor<br>
* 11. Error Descriptor<br>
**/
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_DIGIT_MAP_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_PACKAGE_DESC);
tmps.add(DescriptorType.M_ERROR_DESC);
allowedDescritpors = Collections.unmodifiableSet(tmps);
}
/**
* Constructs a Audit Value Response Descriptor. It specifies the tokens for
* which the audit value is required.
*/
public AuditValRespDescriptor() {
super.descriptorId = DescriptorType.M_AUDIT_VAL_REPLY_DESC;
}
/**
* This method cannot be overridden by the derived class. This method
* returns that the descriptor identifier is of type audit value 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 value response descriptor. It returns that it is audit
* value response Descriptor i.e., M_AUDIT_VAL_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. Digit Map Descriptor<br>
* 7. Observed Events Descriptor<br>
* 8. Event Buffer Descriptor<br>
* 9. Statistics Descriptor<br>
* 10. Package Descriptor<br>
* 11. Error Descriptor<br>
*
*
* @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;
}
/**
* This method cannot be overridden by the derived class. This method
* indicates if the digit map token is present or not.
*
* @returnReturns TRUE if the digit map token is present.
*/
public final boolean isDigitMapTokenPresent() {
return this.digitMapToken;
}
/**
* This method cannot be overridden by the derived class. This method sets a
* flag to indicate that the digit map token is present.
*/
public final void setDigitMapToken() {
this.digitMapToken = true;
}
/**
* This method cannot be overridden by the derived class. This method
* indicates if the Packages token is present or not.
*
* @return Returns TRUE if the Packages token is present.
*/
public final boolean isPackagesTokenPresent() {
return this.packagesToken;
}
/**
* This method cannot be overridden by the derived class. This method sets a
* flag to indicate that the Packages token is present.
*/
public final void setPackagesToken() {
this.packagesToken = true;
}
}