Class ForwardCallIndicators

  • All Implemented Interfaces:
    DataObject, FastSerializable, Serializable

    public final class ForwardCallIndicators
    extends AbstractLazyEncodedByteArray
    implements FastSerializable
    Class ForwardCallIndicators represents various indicators in call forwarding. It represents the ASN.1 OCTET STRING type Core-INAP-CS1-DataTypes.ForwardCallIndicators.

    The API offered by this class is as if the type were specified in ASN.1 as follows.

     ForwardCallIndicators ::= SEQUENCE {
         international             BOOLEAN,
         endToEndMethod            EndToEndMethod,
         interworkingEncountered   BOOLEAN,
         endToEndInfoAvailable     BOOLEAN,
         iSDNUserPartUsedAllTheWay BOOLEAN,
         iSDNUserPartPreference    ISDNUserPartPreference,
         originatingAccessISDN     BOOLEAN,
         sCCPMethod                SCCPMethod
     }
    The class takes care of encoding the field values into a byte-array and decoding field values from a byte-array, the encoded representation being as tabulated below.

    Data Encoding - based on ITU-T Q.763 (12/1999) §3.23 p32
    87654321
    Octet 1ISDN user part preferenceISDN user part used all the way?End-to-end info available?Interworking encountered?End-to-end methodInternational?
    Octet 2Reserved for national useSpareSCCP methodOriginating access ISDN?

    In the above table, the octet numbering is that used in the cited standard. Field names ending in ? are booleans: 1 for true, 0 for false.
    See Also:
    Serialized Form
    • Constructor Detail

      • ForwardCallIndicators

        public ForwardCallIndicators()
        Constructs a new ForwardCallIndicators object with no fields set.
      • ForwardCallIndicators

        public ForwardCallIndicators​(byte[] data)
        Constructs a new ForwardCallIndicators object from network-encoded data. The data is not decoded and might not be decodable.
        Parameters:
        data - network-encoded data
        Throws:
        NullPointerException - if data is null
      • ForwardCallIndicators

        public ForwardCallIndicators​(byte[] data,
                                     int start,
                                     int len)
        Constructs a new ForwardCallIndicators object from part of network-encoded data. The part starts at index start and is len bytes long. The data is not decoded and might not be decodable.
        Parameters:
        data - network-encoded data
        start - starting offset of network-encoded data in byte array
        len - default length if not predictable
        Throws:
        NullPointerException - if data is null
        IllegalArgumentException - if len is negative
      • ForwardCallIndicators

        public ForwardCallIndicators​(boolean international,
                                     ForwardCallIndicators.EndToEndMethod endToEndMethod,
                                     boolean interworkingEncountered,
                                     boolean endToEndInfoAvailable,
                                     boolean iSDNUserPartUsedAllTheWay,
                                     ForwardCallIndicators.ISDNUserPartPreference iSDNUserPartPreference,
                                     boolean originatingAccessISDN,
                                     ForwardCallIndicators.SCCPMethod sCCPMethod)
        Constructs a new ForwardCallIndicators object from given values for all fields.
        Parameters:
        international - the national/international call indicator
        endToEndMethod - the end-to-end method indicator
        interworkingEncountered - the interworking indicator
        endToEndInfoAvailable - whether end-to-end information is available
        iSDNUserPartUsedAllTheWay - whether ISDN user part is used all the way
        iSDNUserPartPreference - the ISDN user part preference indicator
        originatingAccessISDN - the ISDN access indicator
        sCCPMethod - the SCCP method indicator
      • ForwardCallIndicators

        public ForwardCallIndicators​(DataInput in)
                              throws IOException
        Constructs a new ForwardCallIndicators object from data deserialized from a stream that was written by toStream(DataOutput).
        Parameters:
        in - the stream to read from
        Throws:
        EOFException - if reading is pre-empted by end-of-file
        IOException - if the data cannot be read
    • Method Detail

      • hasInternational

        public boolean hasInternational()
                                 throws DecodeException
        Tests whether the field International has a value.
        Returns:
        whether the field has a value
        Throws:
        DecodeException - if encoded state cannot be decoded
      • setInternationalPresent

        public ForwardCallIndicators setInternationalPresent​(boolean flag)
                                                      throws IllegalStateException
        Sets the presence or absence of the field International.
        Parameters:
        flag - whether the field should be marked as present
        Returns:
        this
        Throws:
        IllegalStateException - if this instance has been marked as read-only
      • hasEndToEndMethod

        public boolean hasEndToEndMethod()
                                  throws DecodeException
        Tests whether the field EndToEndMethod has a value.
        Returns:
        whether the field has a value
        Throws:
        DecodeException - if encoded state cannot be decoded
      • hasInterworkingEncountered

        public boolean hasInterworkingEncountered()
                                           throws DecodeException
        Tests whether the field InterworkingEncountered has a value.
        Returns:
        whether the field has a value
        Throws:
        DecodeException - if encoded state cannot be decoded
      • setInterworkingEncounteredPresent

        public ForwardCallIndicators setInterworkingEncounteredPresent​(boolean flag)
                                                                throws IllegalStateException
        Sets the presence or absence of the field InterworkingEncountered.
        Parameters:
        flag - whether the field should be marked as present
        Returns:
        this
        Throws:
        IllegalStateException - if this instance has been marked as read-only
      • hasEndToEndInfoAvailable

        public boolean hasEndToEndInfoAvailable()
                                         throws DecodeException
        Tests whether the field EndToEndInfoAvailable has a value.
        Returns:
        whether the field has a value
        Throws:
        DecodeException - if encoded state cannot be decoded
      • setEndToEndInfoAvailablePresent

        public ForwardCallIndicators setEndToEndInfoAvailablePresent​(boolean flag)
                                                              throws IllegalStateException
        Sets the presence or absence of the field EndToEndInfoAvailable.
        Parameters:
        flag - whether the field should be marked as present
        Returns:
        this
        Throws:
        IllegalStateException - if this instance has been marked as read-only
      • hasISDNUserPartUsedAllTheWay

        public boolean hasISDNUserPartUsedAllTheWay()
                                             throws DecodeException
        Tests whether the field ISDNUserPartUsedAllTheWay has a value.
        Returns:
        whether the field has a value
        Throws:
        DecodeException - if encoded state cannot be decoded
      • setISDNUserPartUsedAllTheWayPresent

        public ForwardCallIndicators setISDNUserPartUsedAllTheWayPresent​(boolean flag)
                                                                  throws IllegalStateException
        Sets the presence or absence of the field ISDNUserPartUsedAllTheWay.
        Parameters:
        flag - whether the field should be marked as present
        Returns:
        this
        Throws:
        IllegalStateException - if this instance has been marked as read-only
      • hasISDNUserPartPreference

        public boolean hasISDNUserPartPreference()
                                          throws DecodeException
        Tests whether the field ISDNUserPartPreference has a value.
        Returns:
        whether the field has a value
        Throws:
        DecodeException - if encoded state cannot be decoded
      • hasOriginatingAccessISDN

        public boolean hasOriginatingAccessISDN()
                                         throws DecodeException
        Tests whether the field OriginatingAccessISDN has a value.
        Returns:
        whether the field has a value
        Throws:
        DecodeException - if encoded state cannot be decoded
      • setOriginatingAccessISDNPresent

        public ForwardCallIndicators setOriginatingAccessISDNPresent​(boolean flag)
                                                              throws IllegalStateException
        Sets the presence or absence of the field OriginatingAccessISDN.
        Parameters:
        flag - whether the field should be marked as present
        Returns:
        this
        Throws:
        IllegalStateException - if this instance has been marked as read-only
      • hasSCCPMethod

        public boolean hasSCCPMethod()
                              throws DecodeException
        Tests whether the field SCCPMethod has a value.
        Returns:
        whether the field has a value
        Throws:
        DecodeException - if encoded state cannot be decoded
      • getInternational

        public boolean getInternational()
                                 throws DecodeException
        Gets the value of the national/international call indicator.
        Returns:
        boolean representation of the national/international call indicator
        Throws:
        DecodeException - if encoded state cannot be decoded
      • getInterworkingEncountered

        public boolean getInterworkingEncountered()
                                           throws DecodeException
        Gets the value of the interworking indicator.
        Returns:
        boolean representation of the interworking indicator
        Throws:
        DecodeException - if encoded state cannot be decoded
      • getEndToEndInfoAvailable

        public boolean getEndToEndInfoAvailable()
                                         throws DecodeException
        Gets the value of whether end-to-end information is available.
        Returns:
        boolean representation of whether end-to-end information is available
        Throws:
        DecodeException - if encoded state cannot be decoded
      • getISDNUserPartUsedAllTheWay

        public boolean getISDNUserPartUsedAllTheWay()
                                             throws DecodeException
        Gets the value of whether ISDN user part is used all the way.
        Returns:
        boolean representation of whether ISDN user part is used all the way
        Throws:
        DecodeException - if encoded state cannot be decoded
      • getOriginatingAccessISDN

        public boolean getOriginatingAccessISDN()
                                         throws DecodeException
        Gets the value of the ISDN access indicator.
        Returns:
        boolean representation of the ISDN access indicator
        Throws:
        DecodeException - if encoded state cannot be decoded
      • setEndToEndInfoAvailable

        public ForwardCallIndicators setEndToEndInfoAvailable​(boolean value)
                                                       throws IllegalStateException
        Sets the value of whether end-to-end information is available.
        Parameters:
        value - boolean representation of whether end-to-end information is available
        Returns:
        this
        Throws:
        IllegalStateException
      • setISDNUserPartUsedAllTheWay

        public ForwardCallIndicators setISDNUserPartUsedAllTheWay​(boolean value)
                                                           throws IllegalStateException
        Sets the value of whether ISDN user part is used all the way.
        Parameters:
        value - boolean representation of whether ISDN user part is used all the way
        Returns:
        this
        Throws:
        IllegalStateException
      • copyOf

        public static ForwardCallIndicators copyOf​(ForwardCallIndicators from)
        Creates a new object of this type, cloning the values of common fields from the given object of any subclass of the same base type.
        Parameters:
        from - the object from which to copy
        Returns:
        ForwardCallIndicators
      • getFieldAccessors

        public static FieldAccessor[] getFieldAccessors()
        Gets a new array of the accessors for fields of this type.
        Returns:
        FieldAccessor[]
      • getFieldsMap

        public Map<String,​Object> getFieldsMap​(boolean withAbsents)
        Gets a Map from field-name to field-value for the fields of a sequence. For a field of primitive type, the field-value is boxed. For an absent optional field, the field-value is AbstractFieldsObject.FIELD_ABSENT. For an uninitialised mandatory field, the field-value is AbstractFieldsObject.FIELD_UNINITIALISED. For a field of String type, the encoded form is used if the String cannot be decoded. For a type that represents an OCTET STRING that cannot be decoded, a map from "encodedValue" to the byte array value is returned.
        Specified by:
        getFieldsMap in class AbstractFieldsObject
        Parameters:
        withAbsents - whether to put absent optional fields into Map
        Returns:
        Map from field-name to field-value
      • encodedIsInvalid

        protected boolean encodedIsInvalid()
        Determines whether the encoded form is invalid.
        Returns:
        boolean
      • getEncodedForm

        public byte[] getEncodedForm()
                              throws EncodeException
        Gets the encoded form.
        Returns:
        encoded form
        Throws:
        EncodeException - if encoding fails
      • getContainedLength

        public static int getContainedLength​(byte[] data,
                                             int start,
                                             int len)
        Determines the length of the encoded value that commences at offset start in the given data. The value is not fully decoded and might not be decodable. Values of this type are of a fixed length, so that length is returned if the data is long enough, otherwise 0 is returned.
        Parameters:
        data - network-encoded data
        start - index into data where value commences
        len - length in data to be considered
        Returns:
        2, or 0 if encoded value is not long enough