public static final class SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration extends AbstractLazyEncodedByteArray
The API offered by this class is as if the type were specified in ASN.1 as follows.
EnhancedDuration ::= SEQUENCE {
length INTEGER OPTIONAL,
hours INTEGER OPTIONAL,
minutes INTEGER OPTIONAL,
seconds INTEGER 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 23.040 V9.0.0 (2009-06) §9.2.3.12.3 pp68-69 | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||
| 1 octet | Reserved (0) | Enhanced validity period format discriminates... | |||||||
| Either | 1 octet | Length | |||||||
| 5 octets | Spare (0) | ||||||||
| or | 1 octet | Seconds | |||||||
| 5 octets | Spare (0) | ||||||||
| or | 1 octet | Hours units | Hours tens | ||||||
| 1 octet | Minutes units | Minutes tens | |||||||
| 1 octet | Seconds units | Seconds tens | |||||||
| 3 octets | Spare (0) | ||||||||
isDecodedencodedFIELD_ABSENT, FIELD_UNINITIALISED| Constructor and Description |
|---|
SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration()
Constructs a new EnhancedDuration object with no fields set.
|
SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration(byte[] data)
Constructs a new EnhancedDuration object from network-encoded data.
|
SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration(byte[] data,
int start,
int len)
Constructs a new EnhancedDuration object from part of network-encoded data.
|
SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration(DataInput in)
Constructs a new EnhancedDuration object from data deserialized from a stream that was written by
toStream(DataOutput). |
SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration(int length)
Constructs a new EnhancedDuration object from the given arguments.
|
SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration(int hours,
int minutes,
int seconds)
Constructs a new EnhancedDuration object from the given arguments.
|
| Modifier and Type | Method and Description |
|---|---|
void |
checkFieldsSet()
Checks that all mandatory fields are present.
|
SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration |
clone()
Constructs a copy of this object and everything reachable from it.
|
static SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration |
copyOf(SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration 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.
|
int |
getHours()
Gets the value of hours part of relative validity period.
|
int |
getLength()
Gets the value of length of relative validity period.
|
int |
getMinutes()
Gets the value of minutes part of relative validity period.
|
int |
getSeconds()
Gets the value of seconds part or whole of relative validity period.
|
boolean |
hasHours()
Tests whether the field Hours has a value.
|
boolean |
hasLength()
Tests whether the field Length has a value.
|
boolean |
hasMinutes()
Tests whether the field Minutes has a value.
|
boolean |
hasSeconds()
Tests whether the field Seconds has a value.
|
SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration |
setHours(int value)
Sets the value of hours part of relative validity period.
|
SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration |
setHoursPresent(boolean flag)
Sets the presence or absence of the field Hours.
|
SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration |
setLength(int value)
Sets the value of length of relative validity period.
|
SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration |
setLengthPresent(boolean flag)
Sets the presence or absence of the field Length.
|
SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration |
setMinutes(int value)
Sets the value of minutes part of relative validity period.
|
SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration |
setMinutesPresent(boolean flag)
Sets the presence or absence of the field Minutes.
|
SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration |
setSeconds(int value)
Sets the value of seconds part or whole of relative validity period.
|
SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration |
setSecondsPresent(boolean flag)
Sets the presence or absence of the field Seconds.
|
void |
toStream(DataOutput out)
Serializes this object to a stream in a form suitable for reading by
SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration(DataInput). |
checkDecode, checkModifyAndDecodeequals, hashCode, toStringcheckModify, isReadOnly, setReadOnlypublic SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration()
public SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration(byte[] data)
data - network-encoded dataNullPointerException - if data is nullpublic SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration(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 SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration(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 SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration(int length)
length - length of relative validity periodpublic SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration(int hours,
int minutes,
int seconds)
hours - hours part of relative validity periodminutes - minutes part of relative validity periodseconds - seconds part of relative validity periodpublic void toStream(DataOutput out) throws IOException
SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration(DataInput).out - the stream to write toIOException - if an I/O error occurspublic boolean hasLength()
throws DecodeException
DecodeException - if encoded state cannot be decodedpublic SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration setLengthPresent(boolean flag) throws IllegalStateException
flag - whether the field should be marked as presentIllegalStateException - if this instance has been marked as read-onlypublic boolean hasHours()
throws DecodeException
DecodeException - if encoded state cannot be decodedpublic SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration setHoursPresent(boolean flag) throws IllegalStateException
flag - whether the field should be marked as presentIllegalStateException - if this instance has been marked as read-onlypublic boolean hasMinutes()
throws DecodeException
DecodeException - if encoded state cannot be decodedpublic SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration setMinutesPresent(boolean flag) throws IllegalStateException
flag - whether the field should be marked as presentIllegalStateException - if this instance has been marked as read-onlypublic boolean hasSeconds()
throws DecodeException
DecodeException - if encoded state cannot be decodedpublic SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration setSecondsPresent(boolean flag) throws IllegalStateException
flag - whether the field should be marked as presentIllegalStateException - if this instance has been marked as read-onlypublic void checkFieldsSet()
throws EncodeException
checkFieldsSet in class AbstractLazyEncodedDataObject<byte[]>EncodeException - if any mandatory field is not presentpublic int getLength()
throws DecodeException
DecodeException - if encoded state cannot be decodedpublic int getHours()
throws DecodeException
DecodeException - if encoded state cannot be decodedpublic int getMinutes()
throws DecodeException
DecodeException - if encoded state cannot be decodedpublic int getSeconds()
throws DecodeException
DecodeException - if encoded state cannot be decodedpublic SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration setLength(int value) throws IllegalStateException
value - int representation of length of relative validity periodIllegalStateExceptionpublic SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration setHours(int value) throws IllegalStateException
value - int representation of hours part of relative validity periodIllegalStateExceptionpublic SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration setMinutes(int value) throws IllegalStateException
value - int representation of minutes part of relative validity periodIllegalStateExceptionpublic SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration setSeconds(int value) throws IllegalStateException
value - int representation of seconds part or whole of relative validity periodIllegalStateExceptionpublic static SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration copyOf(SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration from)
from - the object from which to copypublic SMSSubmit.ValidityPeriod.EnhancedValidityPeriod.EnhancedDuration clone()
clone in interface DataObjectclone in class AbstractDataObjectpublic static FieldAccessor[] getFieldAccessors()
public Map<String,Object> getFieldsMap(boolean withAbsents)
getFieldsMap in class AbstractFieldsObjectwithAbsents - 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.
Values of this type are of a fixed length, so that length
is returned if the data is long enough, otherwise 0 is returned.data - network-encoded datastart - index into data where value commenceslen - length in data to be consideredprotected void encode()
throws EncodeException
encode in class AbstractLazyEncodedDataObject<byte[]>EncodeException - if encoding failsprotected void decode()
throws DecodeException
decode in class AbstractLazyEncodedDataObject<byte[]>DecodeException - if decoding fails