public static final class MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a extends AbstractLazyEncodedByteArray
The API offered by this class is as if the type were specified in ASN.1 as follows.
O6a ::= SEQUENCE { userRate UserRate, numberOfDataBits NumberOfDataBits, negotiation Negotiation, numberOfStopBits NumberOfStopBits, o6b O6b OPTIONAL }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 3GPP TS 24.008 v4.17.0 (2007-09) §10.5.4.5 pp343-361 | ||||||||
---|---|---|---|---|---|---|---|---|
8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | |
Octet 6a* | ext. 0/1 | Number of stop bits | Negotiation | Number of data bits | User rate | |||
Octet 6b* | ext. 0/1 | Intermediate rate | NIC on Tx | NIC on Rx | Parity | |||
Octet 6c* | ext. 0/1 | Connection element | Modem type | |||||
Octet 6d* | ext. 0/1 | Other modem type | Fixed network user rate | |||||
Octet 6e* | ext. 0/1 | Acceptable channel codings | Maximum number of traffic channels | |||||
Octet 6f* | ext. 0/1 | UIMI | Wanted air interface user rate | |||||
Octet 6g* | ext. 1 | Acceptable channel codings extended | Asymmetry indication | Spare (00) |
There is a static condition in standard 24.008 that says if octet 6a is present then octet 6b shall also be present, in the GSM encoding. Contradicting that, the standard allows the ext bit in octet 6a to be 1, which would indicate that there is no following octet 6b. As a compromise, this API offers field O6b as an OPTIONAL field, but with this recommendation: you should always provide a value for field O6b.
Modifier and Type | Class and Description |
---|---|
static class |
MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a.Negotiation
Negotiation constants.
|
static class |
MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a.NumberOfDataBits
Enumeration of NumberOfDataBits constants.
|
static class |
MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a.NumberOfStopBits
Enumeration of NumberOfStopBits constants.
|
static class |
MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a.O6b
Class O6b represents data that is relevant to octets 6b* to 6g*.
|
static class |
MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a.UserRate
UserRate constants.
|
isDecoded
encoded
FIELD_ABSENT, FIELD_UNINITIALISED
Constructor and Description |
---|
MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a()
Constructs a new O6a object with no fields set.
|
MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a(byte[] data)
Constructs a new O6a object from network-encoded data.
|
MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a(byte[] data,
int start,
int len)
Constructs a new O6a object from part of network-encoded data.
|
MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a(DataInput in)
Constructs a new O6a object from data deserialized from a stream that was written by
toStream(DataOutput) . |
Modifier and Type | Method and Description |
---|---|
void |
checkFieldsSet()
Checks that all mandatory fields are present.
|
MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a |
clone()
Constructs a copy of this object and everything reachable from it.
|
static MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a |
copyOf(MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a 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.
|
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 . |
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 field-name to field-value for the fields of a sequence.
|
MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a.Negotiation |
getNegotiation()
Gets the value of the negotiation.
|
MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a.NumberOfDataBits |
getNumberOfDataBits()
Gets the value of the number of data bits excluding parity bit if present.
|
MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a.NumberOfStopBits |
getNumberOfStopBits()
Gets the value of the number of Stop Bits.
|
MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a.O6b |
getO6b()
Gets the value of the octets 6b*..6g*.
|
MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a.UserRate |
getUserRate()
Gets the value of the user rate.
|
boolean |
hasNegotiation()
Tests whether the field Negotiation has a value.
|
boolean |
hasNumberOfDataBits()
Tests whether the field NumberOfDataBits has a value.
|
boolean |
hasNumberOfStopBits()
Tests whether the field NumberOfStopBits has a value.
|
boolean |
hasO6b()
Tests whether the field O6b has a value.
|
boolean |
hasUserRate()
Tests whether the field UserRate has a value.
|
MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a |
setNegotiation(MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a.Negotiation value)
Sets the value of the negotiation.
|
MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a |
setNumberOfDataBits(MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a.NumberOfDataBits value)
Sets the value of the number of data bits excluding parity bit if present.
|
MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a |
setNumberOfStopBits(MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a.NumberOfStopBits value)
Sets the value of the number of Stop Bits.
|
MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a |
setO6b(MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a.O6b value)
Sets the value of the octets 6b*..6g*.
|
MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a |
setUserRate(MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a.UserRate value)
Sets the value of the user rate.
|
void |
toStream(DataOutput out)
Serializes this object to a stream in a form suitable for reading by
MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a(DataInput) . |
checkDecode, checkModifyAndDecode
equals, hashCode, toString
checkModify, isReadOnly, setReadOnly
public MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a()
public MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a(byte[] data)
data
- network-encoded dataNullPointerException
- if data is nullpublic MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a(byte[] data, int start, int len)
start
and is len
bytes long.
The data is not decoded and might not be decodable.data
- network-encoded datastart
- starting offset of network-encoded data in byte arraylen
- default length if not predictableNullPointerException
- if data is nullIllegalArgumentException
- if len is negativepublic MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a(DataInput in) throws IOException
toStream(DataOutput)
.in
- the stream to read fromEOFException
- if reading is pre-empted by end-of-fileIOException
- if the data cannot be readpublic void toStream(DataOutput out) throws IOException
MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a(DataInput)
.out
- the stream to write toIOException
- if an I/O error occurspublic boolean hasUserRate() throws DecodeException
DecodeException
- if encoded state cannot be decodedpublic boolean hasNumberOfDataBits() throws DecodeException
DecodeException
- if encoded state cannot be decodedpublic boolean hasNegotiation() throws DecodeException
DecodeException
- if encoded state cannot be decodedpublic boolean hasNumberOfStopBits() throws DecodeException
DecodeException
- if encoded state cannot be decodedpublic boolean hasO6b() throws DecodeException
DecodeException
- if encoded state cannot be decodedpublic void checkFieldsSet() throws EncodeException
checkFieldsSet
in class AbstractLazyEncodedDataObject<byte[]>
EncodeException
- if any mandatory field is not presentpublic MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a.UserRate getUserRate() throws DecodeException
DecodeException
- if encoded state cannot be decodedpublic MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a.NumberOfDataBits getNumberOfDataBits() throws DecodeException
DecodeException
- if encoded state cannot be decodedpublic MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a.Negotiation getNegotiation() throws DecodeException
DecodeException
- if encoded state cannot be decodedpublic MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a.NumberOfStopBits getNumberOfStopBits() throws DecodeException
DecodeException
- if encoded state cannot be decodedpublic MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a.O6b getO6b() throws DecodeException
DecodeException
- if encoded state cannot be decodedpublic MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a setUserRate(MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a.UserRate value) throws IllegalStateException
value
- UserRate representation of the user rateIllegalStateException
public MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a setNumberOfDataBits(MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a.NumberOfDataBits value) throws IllegalStateException
value
- NumberOfDataBits representation of the number of data bits excluding parity bit if presentIllegalStateException
public MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a setNegotiation(MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a.Negotiation value) throws IllegalStateException
value
- Negotiation representation of the negotiationIllegalStateException
public MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a setNumberOfStopBits(MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a.NumberOfStopBits value) throws IllegalStateException
value
- NumberOfStopBits representation of the number of Stop BitsIllegalStateException
public MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a setO6b(MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a.O6b value) throws IllegalStateException
value
- O6b representation of the octets 6b*..6g*IllegalStateException
public static MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a copyOf(MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a from)
from
- the object from which to copypublic MSBearerCapability.GSM.Content.NonSpeech.Layer1Capability.O6a clone()
clone
in interface DataObject
clone
in class AbstractDataObject
public static FieldAccessor[] getFieldAccessors()
public Map<String,Object> getFieldsMap(boolean withAbsents)
getFieldsMap
in class AbstractFieldsObject
withAbsents
- whether to put absent optional fields into Mapprotected boolean encodedIsInvalid()
public byte[] getEncodedForm() throws EncodeException
EncodeException
- if encoding failspublic static int getContainedLength(byte[] data, int start, int len)
start
in the given data
.
The value is not fully decoded and might not be decodable.
If the encoded value ends with a filling field,
then the given len
is returned.
If the encoded value is so currupt that its length cannot be determined,
then 0
is returned.data
- network-encoded datastart
- index into data where value commenceslen
- length in data to be consideredNullPointerException
- if data is nullprotected void encode() throws EncodeException
encode
in class AbstractLazyEncodedDataObject<byte[]>
EncodeException
- if choice does not match already encoded coding standardprotected void decode() throws DecodeException
decode
in class AbstractLazyEncodedDataObject<byte[]>
DecodeException
- if too few or too many octets to be decoded