package javax.megaco.pkg;
/**
* The MEGACO event item class is an abstract class defined as the base class
* for all the event items in the MEGACO Package. This class shall be used for
* setting the events, list of parameters names and their values. This extends
* the PkgItem class. This is an abstract class and hence cannot be created as a
* separate object.
*
*
*/
public abstract class PkgEventItem extends PkgItem {
protected int eventId = -1;
protected PkgItemParam[] paramInfo;
/**
* Constructs a Jain MEGACO Package Event Item Object. This is an abstract
* class and can be called only by the derived classes.
*/
public PkgEventItem() {
}
/**
* The method can be used to get the event identifier. This method gives the
* event id of the event item. This is an abstract method and is defined by
* the methods of the derived class which shall return an hard coded value
* for the event id.
*
* @return eventId - The integer corresponding to the event id.
*/
public abstract int getEventId();
/**
* The method can be used to get the event identifier. This method gives the
* item id of the event item. This is an abstract method and is defined by
* the methods of the derived class which shall return an hard coded value
* for the event id.
*
* eventId - The integer corresponding to the event id.
*/
public abstract int getItemId();
/**
* This method overrides the corresponding method in PkgItem. This shall
* return an hard coded value to indicate the item type is event.
*
* itemType - An integer value for the item type corresponding to the event.
* This shall return {@link javax.megaco.pkg.PkgItemType.M_EVENT}
*/
public final int getItemType() {
return PkgItemType.M_EVENT;
}
/**
* This method overrides the corresponding method in PkgItem. This method
* would set a flag to indicate that the dynamic package has been associated
* and would not allow the application to overwrite the package association
* once the parameter has been set for the item. If the package name can be
* linked, then this method inturn calls the corresponding method of the
* PkgItem class.
*
* packageId - The object reference of the package object to which the item
* is dynamically associated.
*
* IllegalArgumentException This exception will be raised in the following
* cases 1. If the method is called to modify the associated package after
* the parameter has been set. 2. If the package that is dynamically being
* linked cannot be set due to the fact that the item does not belong to the
* package or the package is not one of the ancestor package of the package,
* to which the item belongs. 3. If the reference of package Id passed to
* this method is NULL.
*/
public void setAssociatedPkgId(MegacoPkg packageId)
throws IllegalArgumentException {
// TODO
}
/**
* The method can be used to get the vector object identifier that specifies
* the attached Parameter name and the corresponding values for the event.
*
* @return paramInfo - The vector of objectIdentifier corresponding to the
* param information set for the package. If the parameter is not
* set then this shall return a NULL value.
*/
public final PkgItemParam[] getMegacoPkgItemParam() {
return this.paramInfo;
}
/**
* The method can be used to set the Parameter information. This method sets
* the attached parameters for the event. This method should be called only
* after a package has been associated with the item. Once the parameter has
* been set, it shall not allow the associated item to be overwritten. This
* method shall verify the following:
*
* <br>
* 1. The parameter can be set for the relevant item. <br>
* 2. The parameter too belongs to the same package for which the item
* belongs. <br>
* 3. If the parameter does not belong to the same package, then does it
* belong to a package that extends the package to which the item belongs. <br>
* 4. If the parameter and the item belong to different packages, but if the
* package to which the parameter belongs extends the package to which the
* item belongs, then it should validate that the current association of the
* item is to the package to which the parameter belongs or should be such
* that it extends the package to which the parameter belongs.
*
* @param paramInfo - The vector of objectIdentifier corresponding to the parameter information.
* @throws IllegalArgumentException If the parameter cannot be linked to the current event.
* @throws IllegalStateException If the item has not been associated with a package.
*/
public final void setMegacoPkgItemParam(PkgItemParam[] paramInfo) throws IllegalArgumentException, IllegalStateException {
// FIXME: add checks for exceptions
this.paramInfo = paramInfo;
}
@Override
public java.lang.String toString() {
// TODO
return super.toString() +" : EventId = "+eventId;
}
}