public final class SMSSubmitReportError extends SMSSubmitReport implements FastSerializable
The API offered by this class is as if the type were specified in ASN.1 as follows.
SMSSubmitReportError ::= SEQUENCE { userDataHeaderIndicator UserDataHeaderIndicator, failureCause SMSFailureCause, serviceCentreTimeStamp SMSTimeStamp, protocolId SMSProtocolId OPTIONAL, dataCodingScheme SMSDataCodingScheme OPTIONAL, userDataLength INTEGER OPTIONAL, userData 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 3GPP TS 23.040 V9.0.0 (2009-06) §9.2.2.2a part (i) pp58-59 | ||||||||
---|---|---|---|---|---|---|---|---|
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
1 octet | 0 | User data header indicator | 0 | 0 | 0 | 0 | Message type 01 | |
1 octet | Failure cause | |||||||
1 octet | 0 | 0 | 0 | 0 | 0 | Has user data length? | Has data coding scheme? | Has protocol identifier? |
7 octets | Service center time stamp | |||||||
0-1 octets | Protocol id | |||||||
0-1 octets | Data coding scheme | |||||||
0-1 octets | User data length | |||||||
0-151 octets | User data |
SMSTPDUWithData.UserDataHeaderIndicator
SMSTPDU.Type
ServiceCentreTimeStamp_value
DataCodingScheme_value, OnlyHeader_present, OnlyHeader_value, ProtocolId_value, UserData_value, UserDataHeaderIndicator_value, UserDataLength_present, UserDataLength_value
isDecoded
encoded
FIELD_ABSENT, FIELD_UNINITIALISED
Constructor and Description |
---|
SMSSubmitReportError()
Constructs a new SMSSubmitReportError object with no fields set.
|
SMSSubmitReportError(byte[] data)
Constructs a new SMSSubmitReportError object from network-encoded data.
|
SMSSubmitReportError(byte[] data,
int start,
int len)
Constructs a new SMSSubmitReportError object from part of network-encoded data.
|
SMSSubmitReportError(DataInput in)
Constructs a new SMSSubmitReportError 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.
|
SMSSubmitReportError |
clone()
Constructs a copy of this object and everything reachable from it.
|
static SMSSubmitReportError |
copyOf(SMSSubmitReportError 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.
|
int |
getContainedLength(byte[] data,
int start,
int len)
Determines the length of the encoded value that commences at offset
start in the given data . |
SMSDataCodingScheme |
getDataCodingScheme()
Gets the value of the coding scheme within the user data.
|
byte[] |
getEncodedForm()
Gets the encoded form.
|
SMSFailureCause |
getFailureCause()
Gets the value of the reason for SMSSubmit failure.
|
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.
|
SMSProtocolId |
getProtocolId()
Gets the value of identifies the above layer protocol.
|
SMSTimeStamp |
getServiceCentreTimeStamp()
Gets the value of time when the SC received the SMSSubmit.
|
SMSTPDU.Type |
getType()
Return the message type of this PDU
|
byte[] |
getUserData()
Gets the value of the user data.
|
SMSTPDUWithData.UserDataHeaderIndicator |
getUserDataHeaderIndicator()
Gets the value of whether user data contains a header.
|
int |
getUserDataLength()
Gets the value of the length of the user data.
|
boolean |
hasFailureCause()
Tests whether the field FailureCause has a value.
|
SMSSubmitReportError |
setDataCodingScheme(SMSDataCodingScheme value)
Sets the value of the coding scheme within the user data.
|
SMSSubmitReportError |
setFailureCause(SMSFailureCause value)
Sets the value of the reason for SMSSubmit failure.
|
SMSSubmitReportError |
setProtocolId(SMSProtocolId value)
Sets the value of identifies the above layer protocol.
|
SMSSubmitReportError |
setServiceCentreTimeStamp(SMSTimeStamp value)
Sets the value of time when the SC received the SMSSubmit.
|
SMSSubmitReportError |
setUserData(byte[] value)
Sets the value of the user data.
|
SMSSubmitReportError |
setUserDataHeaderIndicator(SMSTPDUWithData.UserDataHeaderIndicator value)
Sets the value of whether user data contains a header.
|
SMSSubmitReportError |
setUserDataLength(int value)
Sets the value of the length of the user data.
|
void |
toStream(DataOutput out)
Serializes this object to a stream in a form suitable for reading by
SMSSubmitReportError(DataInput) . |
hasServiceCentreTimeStamp, setReadOnly
checkUserDataConstraints, getUserDataHeader, getUserDataString, hasDataCodingScheme, hasOnlyHeader, hasProtocolId, hasUserData, hasUserDataHeaderIndicator, hasUserDataLength, setOnlyHeaderPresent, setUserDataLengthPresent, setUserDataString, setUserDataString, setUserDataString, setUserDataString
decodeRPAck, decodeRPAck, decodeRPError, decodeRPError, decodeRPMOData, decodeRPMOData, decodeRPMTData, decodeRPMTData, encodeRPAck, encodeRPError, encodeRPMOData, encodeRPMTData
checkDecode, checkModifyAndDecode
equals, hashCode, toString
checkModify, isReadOnly
public SMSSubmitReportError()
public SMSSubmitReportError(byte[] data)
data
- network-encoded dataNullPointerException
- if data is nullpublic SMSSubmitReportError(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 SMSSubmitReportError(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
SMSSubmitReportError(DataInput)
.toStream
in interface FastSerializable
out
- the stream to write toIOException
- if an I/O error occurspublic boolean hasFailureCause() throws DecodeException
DecodeException
- if encoded state cannot be decodedpublic void checkFieldsSet() throws EncodeException
checkFieldsSet
in class SMSSubmitReport
EncodeException
- if any mandatory field is not presentpublic SMSTPDUWithData.UserDataHeaderIndicator getUserDataHeaderIndicator() throws DecodeException
getUserDataHeaderIndicator
in class SMSSubmitReport
DecodeException
- if encoded state cannot be decodedpublic SMSTimeStamp getServiceCentreTimeStamp() throws DecodeException
getServiceCentreTimeStamp
in class SMSSubmitReport
DecodeException
- if encoded state cannot be decodedpublic SMSProtocolId getProtocolId() throws DecodeException
getProtocolId
in class SMSSubmitReport
DecodeException
- if encoded state cannot be decodedpublic SMSDataCodingScheme getDataCodingScheme() throws DecodeException
getDataCodingScheme
in class SMSSubmitReport
DecodeException
- if encoded state cannot be decodedpublic int getUserDataLength() throws DecodeException
getUserDataLength
in class SMSSubmitReport
DecodeException
- if encoded state cannot be decodedpublic byte[] getUserData() throws DecodeException
getUserData
in class SMSSubmitReport
DecodeException
- if encoded state cannot be decodedpublic SMSFailureCause getFailureCause() throws DecodeException
DecodeException
- if encoded state cannot be decodedpublic SMSSubmitReportError setUserDataHeaderIndicator(SMSTPDUWithData.UserDataHeaderIndicator value) throws IllegalStateException
setUserDataHeaderIndicator
in class SMSSubmitReport
value
- UserDataHeaderIndicator representation of whether user data contains a headerIllegalStateException
public SMSSubmitReportError setServiceCentreTimeStamp(SMSTimeStamp value) throws IllegalStateException
setServiceCentreTimeStamp
in class SMSSubmitReport
value
- SMSTimeStamp representation of time when the SC received the SMSSubmitIllegalStateException
public SMSSubmitReportError setProtocolId(SMSProtocolId value) throws IllegalStateException
setProtocolId
in class SMSSubmitReport
value
- SMSProtocolId representation of identifies the above layer protocolIllegalStateException
public SMSSubmitReportError setDataCodingScheme(SMSDataCodingScheme value) throws IllegalStateException
setDataCodingScheme
in class SMSSubmitReport
value
- SMSDataCodingScheme representation of the coding scheme within the user dataIllegalStateException
public SMSSubmitReportError setUserDataLength(int value) throws IllegalStateException
setUserDataLength
in class SMSSubmitReport
value
- int representation of the length of the user dataIllegalStateException
public SMSSubmitReportError setUserData(byte[] value) throws IllegalStateException
setUserData
in class SMSSubmitReport
value
- byte[] representation of the user dataIllegalStateException
public SMSSubmitReportError setFailureCause(SMSFailureCause value) throws IllegalStateException
value
- SMSFailureCause representation of the reason for SMSSubmit failureIllegalStateException
public static SMSSubmitReportError copyOf(SMSSubmitReportError from)
from
- the object from which to copypublic SMSSubmitReportError 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
getEncodedForm
in class SMSTPDU
EncodeException
- if encoding failspublic SMSTPDU.Type getType()
SMSTPDU
public 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 encoding failsprotected void decode() throws DecodeException
decode
in class AbstractLazyEncodedDataObject<byte[]>
DecodeException
- if decoding fails