public class ForwardingOptions extends AbstractLazyEncodedByteArray implements FastSerializable
The API offered by this class is as if the type were specified in ASN.1 as follows.
ForwardingOptions ::= SEQUENCE { notificationToForwardingParty BOOLEAN, redirectingPresentation BOOLEAN, notificationToCallingParty BOOLEAN, forwardingReason ForwardingReason }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 comment in ASN.1 module MAP-SS-DataTypes in 3GPP TS 29.002 V10.0.0 (2010-09) §17.7.4 p402 | ||||||||
---|---|---|---|---|---|---|---|---|
8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | |
Octet 1 | Notification to forwarding party? | Redirecting presentation? | Notification to calling party? | 0 | Forwarding reason | 0 | 0 |
Modifier and Type | Class and Description |
---|---|
static class |
ForwardingOptions.ForwardingReason
Enumeration of Forwarding Reason constants.
|
Modifier and Type | Field and Description |
---|---|
protected ForwardingOptions.ForwardingReason |
ForwardingReason_value
Value of field ForwardingReason.
|
protected boolean |
NotificationToCallingParty_present
Whether field NotificationToCallingParty is present.
|
protected boolean |
NotificationToCallingParty_value
Value of field NotificationToCallingParty.
|
protected boolean |
NotificationToForwardingParty_present
Whether field NotificationToForwardingParty is present.
|
protected boolean |
NotificationToForwardingParty_value
Value of field NotificationToForwardingParty.
|
protected boolean |
RedirectingPresentation_present
Whether field RedirectingPresentation is present.
|
protected boolean |
RedirectingPresentation_value
Value of field RedirectingPresentation.
|
isDecoded
encoded
FIELD_ABSENT, FIELD_UNINITIALISED
Constructor and Description |
---|
ForwardingOptions()
Constructs a new ForwardingOptions object with no fields set.
|
ForwardingOptions(boolean notificationToForwardingParty,
boolean redirectingPresentation,
boolean notificationToCallingParty,
ForwardingOptions.ForwardingReason forwardingReason)
Constructs a new ForwardingOptions object from given values for all fields.
|
ForwardingOptions(byte[] data)
Constructs a new ForwardingOptions object from network-encoded data.
|
ForwardingOptions(byte[] data,
int start,
int len)
Constructs a new ForwardingOptions object from part of network-encoded data.
|
ForwardingOptions(DataInput in)
Constructs a new ForwardingOptions 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.
|
ForwardingOptions |
clone()
Constructs a copy of this object and everything reachable from it.
|
static ForwardingOptions |
copyOf(ForwardingOptions 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.
|
ForwardingOptions.ForwardingReason |
getForwardingReason()
Gets the value of Forwarding reason.
|
boolean |
getNotificationToCallingParty()
Gets the value of Notification to calling party.
|
boolean |
getNotificationToForwardingParty()
Gets the value of Notification to forwarding party.
|
boolean |
getRedirectingPresentation()
Gets the value of Redirecting presentation.
|
boolean |
hasForwardingReason()
Tests whether the field ForwardingReason has a value.
|
boolean |
hasNotificationToCallingParty()
Tests whether the field NotificationToCallingParty has a value.
|
boolean |
hasNotificationToForwardingParty()
Tests whether the field NotificationToForwardingParty has a value.
|
boolean |
hasRedirectingPresentation()
Tests whether the field RedirectingPresentation has a value.
|
ForwardingOptions |
setForwardingReason(ForwardingOptions.ForwardingReason value)
Sets the value of Forwarding reason.
|
ForwardingOptions |
setNotificationToCallingParty(boolean value)
Sets the value of Notification to calling party.
|
ForwardingOptions |
setNotificationToCallingPartyPresent(boolean flag)
Sets the presence or absence of the field NotificationToCallingParty.
|
ForwardingOptions |
setNotificationToForwardingParty(boolean value)
Sets the value of Notification to forwarding party.
|
ForwardingOptions |
setNotificationToForwardingPartyPresent(boolean flag)
Sets the presence or absence of the field NotificationToForwardingParty.
|
ForwardingOptions |
setRedirectingPresentation(boolean value)
Sets the value of Redirecting presentation.
|
ForwardingOptions |
setRedirectingPresentationPresent(boolean flag)
Sets the presence or absence of the field RedirectingPresentation.
|
void |
toStream(DataOutput out)
Serializes this object to a stream in a form suitable for reading by
ForwardingOptions(DataInput) . |
checkDecode, checkModifyAndDecode
equals, hashCode, toString
checkModify, isReadOnly, setReadOnly
protected boolean NotificationToForwardingParty_value
protected boolean NotificationToForwardingParty_present
protected boolean RedirectingPresentation_value
protected boolean RedirectingPresentation_present
protected boolean NotificationToCallingParty_value
protected boolean NotificationToCallingParty_present
protected ForwardingOptions.ForwardingReason ForwardingReason_value
public ForwardingOptions()
public ForwardingOptions(byte[] data)
data
- network-encoded dataNullPointerException
- if data is nullpublic ForwardingOptions(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 ForwardingOptions(boolean notificationToForwardingParty, boolean redirectingPresentation, boolean notificationToCallingParty, ForwardingOptions.ForwardingReason forwardingReason)
notificationToForwardingParty
- Notification to forwarding partyredirectingPresentation
- Redirecting presentationnotificationToCallingParty
- Notification to calling partyforwardingReason
- Forwarding reasonpublic ForwardingOptions(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
ForwardingOptions(DataInput)
.toStream
in interface FastSerializable
out
- the stream to write toIOException
- if an I/O error occurspublic boolean hasNotificationToForwardingParty() throws DecodeException
DecodeException
- if encoded state cannot be decodedpublic ForwardingOptions setNotificationToForwardingPartyPresent(boolean flag) throws IllegalStateException
flag
- whether the field should be marked as presentIllegalStateException
- if this instance has been marked as read-onlypublic boolean hasRedirectingPresentation() throws DecodeException
DecodeException
- if encoded state cannot be decodedpublic ForwardingOptions setRedirectingPresentationPresent(boolean flag) throws IllegalStateException
flag
- whether the field should be marked as presentIllegalStateException
- if this instance has been marked as read-onlypublic boolean hasNotificationToCallingParty() throws DecodeException
DecodeException
- if encoded state cannot be decodedpublic ForwardingOptions setNotificationToCallingPartyPresent(boolean flag) throws IllegalStateException
flag
- whether the field should be marked as presentIllegalStateException
- if this instance has been marked as read-onlypublic boolean hasForwardingReason() 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 boolean getNotificationToForwardingParty() throws DecodeException
DecodeException
- if encoded state cannot be decodedpublic boolean getRedirectingPresentation() throws DecodeException
DecodeException
- if encoded state cannot be decodedpublic boolean getNotificationToCallingParty() throws DecodeException
DecodeException
- if encoded state cannot be decodedpublic ForwardingOptions.ForwardingReason getForwardingReason() throws DecodeException
DecodeException
- if encoded state cannot be decodedpublic ForwardingOptions setNotificationToForwardingParty(boolean value) throws IllegalStateException
value
- boolean representation of Notification to forwarding partyIllegalStateException
public ForwardingOptions setRedirectingPresentation(boolean value) throws IllegalStateException
value
- boolean representation of Redirecting presentationIllegalStateException
public ForwardingOptions setNotificationToCallingParty(boolean value) throws IllegalStateException
value
- boolean representation of Notification to calling partyIllegalStateException
public ForwardingOptions setForwardingReason(ForwardingOptions.ForwardingReason value) throws IllegalStateException
value
- ForwardingReason representation of Forwarding reasonIllegalStateException
public static ForwardingOptions copyOf(ForwardingOptions from)
from
- the object from which to copypublic ForwardingOptions 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.
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()
encode
in class AbstractLazyEncodedDataObject<byte[]>
protected void decode() throws DecodeException
decode
in class AbstractLazyEncodedDataObject<byte[]>
DecodeException
- if not between 1 and 5 octets to be decoded