org.mobicents.protocols.smpp.gsm
Interface HeaderElement

All Known Implementing Classes:
AbstractHeaderElement, BlackAndWhiteBitmapEO, CompressedData, ConcatenatedSms, ExtendedObject, LargePicture, Picture, PortAddressing16, PortAddressing8, RecurringHeaderElement, SmallPicture, UserPromptIndicator, VariablePicture

public interface HeaderElement

An element that can be added to a user data header. Header elements are stateful objects as they may be output to multiple SMS segments. Depending on their implementation, they might be outputting the same information for each segment or different information. Therefore, before a HeaderElement can be used to generate message segments via UserData.toSegments() it must be in its initial state. If a header element has previously been used, returning to its initial state may be accomplished by invoking its reset() method.

Version:
$Id: HeaderElement.java 484 2010-02-08 16:08:50Z orank $
See Also:
UserData, UserDataImpl

Method Summary
 int getLength()
          Get the total number of octets this header element encodes as excluding the IEI and the IEI-Data-Length fields.
 boolean isComplete()
          Determine if this HeaderElement has written all its data.
 boolean isRecurring()
          Determine if this header element should be included in the header of each message in a concatenated message.
 void postProcess(List<ByteBuffer> segments)
          This method allows HeaderElements to post-process SMS segments after they have all been created by UserData.toSegments().
 void reset()
          Reset this HeaderElement to its initial state.
 boolean write(int segmentNum, ByteBuffer buffer)
          Encode this header element to the given ByteBuffer.
 

Method Detail

getLength

int getLength()
Get the total number of octets this header element encodes as excluding the IEI and the IEI-Data-Length fields.

Returns:
The number of octets in this header element's IE-Data, which may exceed 140 octets.

reset

void reset()
Reset this HeaderElement to its initial state. A HeaderElement must be in its initial state before it can be used to generate SMS segments in a UserData implementation.


isComplete

boolean isComplete()
Determine if this HeaderElement has written all its data. This is an internal method that is used by UserData implementations.

Returns:
true if all of this header element's data has been written to SMS segments. Elements which always recur in every SMS segment (such as concatenation) will never return true from this method.

write

boolean write(int segmentNum,
              ByteBuffer buffer)
Encode this header element to the given ByteBuffer.

Parameters:
out - The byte buffer to write to.

postProcess

void postProcess(List<ByteBuffer> segments)
This method allows HeaderElements to post-process SMS segments after they have all been created by UserData.toSegments(). This is primarily provided for ConcatenatedSms so that it can fill in the "total message segments" field in each segment once the total count is known.

Parameters:
segments - The generated SMS segments.

isRecurring

boolean isRecurring()
Determine if this header element should be included in the header of each message in a concatenated message. For example, concatenation information must appear in every segment. Usually, other header element implementations will simply return false from here.

Returns:
true if this header element will be included in each message of a concatenated message, false if it only needs to occur in one segment.


Copyright © 2011 Mobicents. All Rights Reserved.