Class BearerCapability
- java.lang.Object
-
- com.opencloud.util.AbstractDataObject
-
- com.opencloud.util.AbstractFieldsObject
-
- AbstractEncodedDataObject<T>
-
- AbstractLazyEncodedDataObject<byte[]>
-
- AbstractLazyEncodedByteArray
-
- com.opencloud.slee.resources.in.datatypes.cc.BearerCapability
-
- All Implemented Interfaces:
DataObject
,FastSerializable
,Serializable
public final class BearerCapability extends AbstractLazyEncodedByteArray implements FastSerializable
Class BearerCapability indicates a requested bearer service to be provided by the network. It represents the ASN.1 OCTET STRING type Core-INAP-CS1-DataTypes.BearerCapability.bearerCap.The API offered by this class is as if the type were specified in ASN.1 as follows.
BearerCapability ::= CHOICE { iTU_T ITU_T, iSO_IEC OCTET STRING, national OCTET STRING, network OCTET STRING }
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.931 (05/98) §4.5.5 p58 and a comment in Ericsson-INAP-CS1-Datatypes.asn 8 7 6 5 4 3 2 1 Coding standard discriminates... Case ITU_T Octet 3 ext. 1 0 0 ITU_T-encoded data Octets 4.. ITU_T-encoded data case ISO_IEC Octet 3 ext. 1 0 1 ISO_IEC-encoded data Octets 4.. ISO_IEC-encoded data case National Octet 3 ext. 1 1 0 National-encoded data Octets 4.. National-encoded data case Network Octet 3 ext. 1 1 1 Network-encoded data Octets 4.. Network-encoded data
The Coding Standard is a discriminant for how the octets are decoded. On encoding, the discriminant is automatically set according to which alternative is encoded.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
BearerCapability.Choice
Enumeration of discriminating values.static class
BearerCapability.ITU_T
Class ITU_T indicates a requested bearer service to be provided by the network, coded in ITU_T format.
-
Field Summary
-
Fields inherited from class com.opencloud.slee.resources.cgin.AbstractLazyEncodedDataObject
isDecoded
-
Fields inherited from class com.opencloud.slee.resources.cgin.AbstractEncodedDataObject
encoded
-
Fields inherited from class com.opencloud.util.AbstractFieldsObject
FIELD_ABSENT, FIELD_UNINITIALISED
-
-
Constructor Summary
Constructors Constructor Description BearerCapability()
Constructs a new BearerCapability object with no fields set.BearerCapability(byte[] data)
Constructs a new BearerCapability object from network-encoded data.BearerCapability(byte[] data, int start, int len)
Constructs a new BearerCapability object from part of network-encoded data.BearerCapability(DataInput in)
Constructs a new BearerCapability object from data deserialized from a stream that was written bytoStream(DataOutput)
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
checkFieldsSet()
Checks that all mandatory fields are present.BearerCapability
clone()
Constructs a copy of this object and everything reachable from it.static BearerCapability
copyOf(BearerCapability 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.protected void
decode()
Computes the decoded form from the encoded form.protected void
encode()
Computes the encoded form from the decoded form.protected boolean
encodedIsInvalid()
Determines whether the encoded form is invalid.BearerCapability.Choice
getChoice()
Gets the discriminant for which choice is chosen.static int
getContainedLength(byte[] data, int start, int len)
Determines the length of the encoded value that commences at offsetstart
in the givendata
.byte[]
getEncodedForm()
Gets the encoded form.static FieldAccessor[]
getFieldAccessors()
Gets a new array of the accessors for fields of this type.Map<String,Object>
getFieldsMap(boolean withAbsents)
Gets a Map from :discriminant-name to field-value.byte[]
getISO_IEC()
Gets the value of the ISO_IEC coding standard.BearerCapability.ITU_T
getITU_T()
Gets the value of the ITU_T coding standard.byte[]
getNational()
Gets the value of the National coding standard.byte[]
getNetwork()
Gets the value of the Network coding standard.boolean
isISO_IECChosen()
Tests whether the choice is iSO_IEC.boolean
isITU_TChosen()
Tests whether the choice is iTU_T.boolean
isNationalChosen()
Tests whether the choice is national.boolean
isNetworkChosen()
Tests whether the choice is network.BearerCapability
setISO_IEC(byte[] value)
Sets the value of the ISO_IEC coding standard.BearerCapability
setITU_T(BearerCapability.ITU_T value)
Sets the value of the ITU_T coding standard.BearerCapability
setNational(byte[] value)
Sets the value of the National coding standard.BearerCapability
setNetwork(byte[] value)
Sets the value of the Network coding standard.void
toStream(DataOutput out)
Serializes this object to a stream in a form suitable for reading byBearerCapability(DataInput)
.-
Methods inherited from class com.opencloud.slee.resources.cgin.AbstractLazyEncodedDataObject
checkDecode, checkModifyAndDecode
-
Methods inherited from class com.opencloud.util.AbstractFieldsObject
equals, hashCode, toString
-
Methods inherited from class com.opencloud.util.AbstractDataObject
checkModify, isReadOnly, setReadOnly
-
-
-
-
Constructor Detail
-
BearerCapability
public BearerCapability()
Constructs a new BearerCapability object with no fields set.
-
BearerCapability
public BearerCapability(byte[] data)
Constructs a new BearerCapability 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
-
BearerCapability
public BearerCapability(byte[] data, int start, int len)
Constructs a new BearerCapability object from part of network-encoded data. The part starts at indexstart
and islen
bytes long. The data is not decoded and might not be decodable.- Parameters:
data
- network-encoded datastart
- starting offset of network-encoded data in byte arraylen
- default length if not predictable- Throws:
NullPointerException
- if data is nullIllegalArgumentException
- if len is negative
-
BearerCapability
public BearerCapability(DataInput in) throws IOException
Constructs a new BearerCapability object from data deserialized from a stream that was written bytoStream(DataOutput)
.- Parameters:
in
- the stream to read from- Throws:
EOFException
- if reading is pre-empted by end-of-fileIOException
- if the data cannot be read
-
-
Method Detail
-
toStream
public void toStream(DataOutput out) throws IOException
Serializes this object to a stream in a form suitable for reading byBearerCapability(DataInput)
.- Specified by:
toStream
in interfaceFastSerializable
- Parameters:
out
- the stream to write to- Throws:
IOException
- if an I/O error occurs
-
getChoice
public BearerCapability.Choice getChoice() throws DecodeException
Gets the discriminant for which choice is chosen.- Returns:
- enumerated constant
- Throws:
DecodeException
- if encoded state cannot be decoded
-
isITU_TChosen
public boolean isITU_TChosen() throws DecodeException
Tests whether the choice is iTU_T.- Returns:
- true if chosen, false if not
- Throws:
DecodeException
- if encoded state cannot be decoded
-
isISO_IECChosen
public boolean isISO_IECChosen() throws DecodeException
Tests whether the choice is iSO_IEC.- Returns:
- true if chosen, false if not
- Throws:
DecodeException
- if encoded state cannot be decoded
-
isNationalChosen
public boolean isNationalChosen() throws DecodeException
Tests whether the choice is national.- Returns:
- true if chosen, false if not
- Throws:
DecodeException
- if encoded state cannot be decoded
-
isNetworkChosen
public boolean isNetworkChosen() throws DecodeException
Tests whether the choice is network.- Returns:
- true if chosen, false if not
- Throws:
DecodeException
- if encoded state cannot be decoded
-
checkFieldsSet
public void checkFieldsSet() throws EncodeException
Checks that all mandatory fields are present. Should be called immediately before all calls to encode().- Specified by:
checkFieldsSet
in classAbstractLazyEncodedDataObject<byte[]>
- Throws:
EncodeException
- if any mandatory field is not present
-
getITU_T
public BearerCapability.ITU_T getITU_T() throws DecodeException
Gets the value of the ITU_T coding standard.- Returns:
- ITU_T representation of the ITU_T coding standard, if choice is the ITU_T coding standard, else null
- Throws:
DecodeException
- if encoded state cannot be decoded
-
getISO_IEC
public byte[] getISO_IEC() throws DecodeException
Gets the value of the ISO_IEC coding standard.- Returns:
- byte[] representation of the ISO_IEC coding standard, if choice is the ISO_IEC coding standard, else null
- Throws:
DecodeException
- if encoded state cannot be decoded
-
getNational
public byte[] getNational() throws DecodeException
Gets the value of the National coding standard.- Returns:
- byte[] representation of the National coding standard, if choice is the National coding standard, else null
- Throws:
DecodeException
- if encoded state cannot be decoded
-
getNetwork
public byte[] getNetwork() throws DecodeException
Gets the value of the Network coding standard.- Returns:
- byte[] representation of the Network coding standard, if choice is the Network coding standard, else null
- Throws:
DecodeException
- if encoded state cannot be decoded
-
setITU_T
public BearerCapability setITU_T(BearerCapability.ITU_T value) throws IllegalStateException
Sets the value of the ITU_T coding standard.- Parameters:
value
- ITU_T representation of the ITU_T coding standard- Returns:
- this
- Throws:
IllegalStateException
-
setISO_IEC
public BearerCapability setISO_IEC(byte[] value) throws IllegalStateException
Sets the value of the ISO_IEC coding standard.- Parameters:
value
- byte[] representation of the ISO_IEC coding standard- Returns:
- this
- Throws:
IllegalStateException
-
setNational
public BearerCapability setNational(byte[] value) throws IllegalStateException
Sets the value of the National coding standard.- Parameters:
value
- byte[] representation of the National coding standard- Returns:
- this
- Throws:
IllegalStateException
-
setNetwork
public BearerCapability setNetwork(byte[] value) throws IllegalStateException
Sets the value of the Network coding standard.- Parameters:
value
- byte[] representation of the Network coding standard- Returns:
- this
- Throws:
IllegalStateException
-
copyOf
public static BearerCapability copyOf(BearerCapability 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:
- BearerCapability
-
clone
public BearerCapability clone()
Constructs a copy of this object and everything reachable from it.- Specified by:
clone
in interfaceDataObject
- Specified by:
clone
in classAbstractDataObject
- Returns:
- copy of object
-
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 :discriminant-name to field-value. If choice is not set, returns a Map from : to AbstractFieldsObject.FIELD_UNINITIALISED. For a field of primitive type, the field-value is boxed. 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 classAbstractFieldsObject
- Parameters:
withAbsents
- the value of this parameter is ignored- Returns:
- Map from :discriminant-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 offsetstart
in the givendata
. The value is not fully decoded and might not be decodable. If the encoded value ends with a filling field, then the givenlen
is returned. If the encoded value is so currupt that its length cannot be determined, then0
is returned.- Parameters:
data
- network-encoded datastart
- index into data where value commenceslen
- length in data to be considered- Returns:
- length of encoded value, or 0 if not decodable
- Throws:
NullPointerException
- if data is null
-
encode
protected void encode() throws EncodeException
Computes the encoded form from the decoded form.- Specified by:
encode
in classAbstractLazyEncodedDataObject<byte[]>
- Throws:
EncodeException
- if choice does not match already encoded coding standard
-
decode
protected void decode() throws DecodeException
Computes the decoded form from the encoded form.- Specified by:
decode
in classAbstractLazyEncodedDataObject<byte[]>
- Throws:
DecodeException
- if too few or too many octets to be decoded
-
-