package javax.megaco.pkg; import java.util.Arrays; import javax.megaco.MethodInvocationException; import javax.megaco.ParameterNotSetException; /** * The MEGACO statistics item class is an abstract class defined as the base * class for all the statistics items in the MEGACO Package. This class shall be * used for setting the statistics 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 PkgStatsItem extends PkgValueItem { //FIXME: orignaly it only extends PkgItem private ParamRelation paramRelation; protected int statisticsId = -1; /** * Constructs a Jain MEGACO Package Statistics Item Object. This is an * abstract class and can be called only by the derived classes. */ public PkgStatsItem() { } /** * The method can be used to get the statistics identifier. This method * gives the statistics id of the package. This is an abstract method and is * defined by the methods of the derived class which shall return an hard * coded value for the statistics id. * * @return statisticsId - The integer corresponding to the statistics id. */ public abstract int getStatisticsId(); /** * The method can be used to get the statistics identifier. This method * gives the statistics id of the package. This is an abstract method and is * defined by the methods of the derived class which shall return an hard * coded value for the statistics id. * * statisticsId - The integer corresponding to the statistics 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 statistics. * * itemType - An integer value for the item type corresponding to the * statistics. This shall return {@link javax.megaco.pkg.PkgItemType.M_STATISTICS}. */ public final int getItemType() { return PkgItemType.M_STATISTICS; } /** * The method can be used to get the type of the value as defined in the * MEGACO packages. These could be one of string or enumerated value or * integer or boolean or double value. * * @return valueType - The integer corresponding to the value type. The * values shall be defined in ParamValueType. */ public abstract int getItemValueType(); /** * The method can be used to get the relation of the value as defined in the * MEGACO packages. The relation operator can be one of equal, not equal, * greater than or less than operator for single value. The MEGACO parameter * is accompanied by a parameter value that can be single value or set of * values or sublist of values or range of values. The relation operator can * be equal when the value is set or sublist or range. This method specifies * both the relation operator and also specifies whether the accompaning * parameter value is single value or set of values or sublist of values or * range of value. If the relation specifies set or range or sublist, it * automatically assumes the relation to be "MEGACO_EQUAL". * * @return paramRelation - The int corresponding to the value relation. The * values shall be defined in ParamRelation. */ public final ParamRelation getItemsValueRelation() throws javax.megaco.ParameterNotSetException { return paramRelation; } /** * The method can be used to get the descriptor ids corresponding to the * item. This shall be overriden by the derived class and would be returned * a hardcoded value from the derived class. * * @return descriptorId - The vector of integers corresponding to the * descriptor to which the item can be used. The values shall be * defined in DescriptorType. */ public abstract int[] getItemsDescriptorIds(); /** * The method can be used to set the relation of the value as defined in the * MEGACO packages. The relation operator can be one of equal, not equal, * greater than or less than operator for single value. The MEGACO parameter * is accompanied by a parameter value that can be single value or set of * values or sublist of values or range of values. The relation operator can * be equal when the value is set or sublist or range. This method specifies * both the relation operator and also specifies whether the accompaning * parameter value is single value or set of values or sublist of values or * range of value. If the relation specifies set or range or sublist, it * automatically assumes the relation to be "MEGACO_EQUAL". * * @param paramRelation * paramRelation - The integer corresponding to the value * relation. The values shall be defined in ParamRelation. */ public final void setItemsValueRelation(ParamRelation paramRelation) { this.paramRelation = paramRelation; } public java.lang.String toString() { return super.toString() + " : Value = " + getValueAsString() + "]"; } }