com.objectxp.msg.ems
Class EMSMessage

java.lang.Object
  extended by com.objectxp.msg.Message
      extended by com.objectxp.msg.SmsMessage
          extended by com.objectxp.msg.ems.EMSMessage
All Implemented Interfaces:
MultiPartMessage, java.io.Serializable, java.lang.Cloneable

public class EMSMessage
extends SmsMessage
implements MultiPartMessage

This class represents a EMS message. EMS messages can contain mixed content. The following content types are supported:

The EMS message must be assembled by creating one or multiple EMS elements and adding them to the EMSMessage in the desired order. Example:
 EMSMessage msg = new EMSMessage(service);
 msg.add(new EMSText("Hello", EMSTextFormat.BOLD));
 msg.add(EMSAnimation.WOW);
 msg.add(new EMSText("World", EMSTextFormat.LARGE));
 

Since:
jSMS 1.7
See Also:
EMSMessage, Serialized Form

Field Summary
 
Fields inherited from class com.objectxp.msg.SmsMessage
CLASS_0, CLASS_1, CLASS_2, CLASS_3, DC_8BIT, DC_DEFAULT, DC_GROUP_DATA, DC_GROUP_GENERAL, DC_GROUP_MSG_WAITING_DISCARD, DC_GROUP_MSG_WAITING_STORE, DC_UCS2, INDICATION_ACTIVE, INDICATION_INACTIVE, INDICATION_TYPE_EMAIL, INDICATION_TYPE_FAX, INDICATION_TYPE_OTHER, INDICATION_TYPE_VOICEMAIL, NO_CLASS
 
Fields inherited from class com.objectxp.msg.Message
ACK_TIME, MT_BINARY, MT_STATUS, MT_TEXT, SENDER_TYPE_ALPHA, SENDER_TYPE_GUESS, SENDER_TYPE_NUMBER
 
Constructor Summary
EMSMessage()
          Constructor of an EMS message.
 
Method Summary
 EMSMessage add(EMSElement element)
          Add a EMSElement to this message.
 EMSMessage add(EMSElement[] elements)
          Add multiple EMSElement objects to this message.
 EMSMessage add(java.lang.String text)
          Adds an unformated text element.
 void buildParts(java.lang.Class type, int refnr)
          Fragmentize the Multipart message.
 void buildParts(int refnr)
          This method will be called by SmsService implementations prior to sending a MultiPartMessage.
 boolean containsUserDataHeader()
          Test if the Message parts will contains a User Data Header.
 byte[] getBytes()
          Get the message data.
 EMSElement[] getElements()
          Get the added EMSElement objects.
 java.lang.String getMessage()
          Gets the message as unformated text.
 SmsMessage[] getParts()
          Returns the message parts created by buildParts(int).
 byte[] getUserData()
          Get the User Data of this message.
 byte[] getUserDataHeader()
          This will always return null.
 void setMessage(byte[] bytes)
          Sets the messages data explicitly.
 void setMessage(java.lang.String message)
          Sets the messages explicitly.
 void setUserData(byte[] data)
          Sets the messages data explicitly.
 void setUserDataHeader(byte[] udh)
          Has no effect on a EMS Message, since the user data header is generated when the parts are builded.
 
Methods inherited from class com.objectxp.msg.SmsMessage
copyFields, getAlphabet, getCodingGroup, getDeferredDeliveryAsDate, getDeferredDeliveryInMinutes, getID, getIndicationState, getIndicationType, getMessageClass, getParent, getPID, getRecipient, getRecipientAddress, getSender, getSenderAddress, getType, getValidityPeriodAsDate, getValidityPeriodInMinutes, hasDeferredDelivery, hasMessageClass, hasValidityPeriod, isCompressed, isMMS, isRejectDuplicates, isRelativeDeferredDelivery, isRelativeValidityPeriod, isReplyPath, requestStatusReport, requestStatusReport, setAlphabet, setCodingGroup, setCompression, setDeferredDelivery, setDeferredDelivery, setIndicationState, setIndicationType, setMessageClass, setMMS, setParent, setPID, setRecipient, setRecipientAddress, setRejectDuplicates, setReplyPath, setSender, setSenderAddress, setType, setUserDataHeader, setValidityPeriod, setValidityPeriod, toString
 
Methods inherited from class com.objectxp.msg.Message
clone, getProperty, getSenderType, getTimestamp, setID, setProperty, setSenderType
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

EMSMessage

public EMSMessage()
Constructor of an EMS message.

Method Detail

add

public EMSMessage add(EMSElement element)
Add a EMSElement to this message.

Parameters:
element - an EMS Element.
Returns:
this EMSMessage object.

add

public EMSMessage add(EMSElement[] elements)
Add multiple EMSElement objects to this message.

Parameters:
elements - an array containing EMS elements.
Returns:
this EMSMessage object.
Since:
jSMS 2.2

add

public EMSMessage add(java.lang.String text)
Adds an unformated text element.
This invokation is equivalent to
 add(new EMSText(text,null))
 

Parameters:
text - a text
Returns:
this EMSMessage object.
See Also:
add(EMSElement)

getElements

public EMSElement[] getElements()
Get the added EMSElement objects.

Returns:
an array of EMSElement objects

containsUserDataHeader

public boolean containsUserDataHeader()
Test if the Message parts will contains a User Data Header.

Overrides:
containsUserDataHeader in class SmsMessage

getUserDataHeader

public byte[] getUserDataHeader()
This will always return null.

Overrides:
getUserDataHeader in class SmsMessage
Returns:
the User Data header or null if the header is not present

setUserDataHeader

public void setUserDataHeader(byte[] udh)
Has no effect on a EMS Message, since the user data header is generated when the parts are builded.

Overrides:
setUserDataHeader in class SmsMessage
Parameters:
udh - the header data as byte array or null to clear the header
See Also:
SmsMessage.setUserDataHeader(byte[])

buildParts

public final void buildParts(int refnr)
Description copied from interface: MultiPartMessage
This method will be called by SmsService implementations prior to sending a MultiPartMessage.

buildParts() will split the message into multiple parts if necessary. The parts can then be accessed by calling MultiPartMessage.getParts().

Please note that there is no need to invoke this method directly since SmsService implementations call this method automatically.

Specified by:
buildParts in interface MultiPartMessage
Parameters:
refnr - the reference-number to use for concatenated messages.

buildParts

public final void buildParts(java.lang.Class type,
                             int refnr)
                      throws java.lang.IllegalArgumentException
Description copied from interface: MultiPartMessage
Fragmentize the Multipart message.

Invoke this method before sending a Multipart message if you want to specify the type of the resulting fragments.

Example
The following example shows how to set the CIMD2 specific priority flag on all fragments of a Multipart message:

   Ringtone rt = new Ringtone("...");
   rt.buildParts(Cimd2Message.class, myRefnr++);
   Cimd2Message[] fragments = (Cimd2Message[]) rt.getParts();
   for( int i=0; i < fragments.length; i++ ) {
     fragments[i].setPriority(new Integer(5));
   }
   cimd2Service.sendMessage(rt);
 

Specified by:
buildParts in interface MultiPartMessage
Parameters:
type - the type used for the fragments. Must be an instance of SmsMessage.
refnr - the reference-number to use for the concatenated messages.
Throws:
java.lang.IllegalArgumentException - if the type is not an instance of SmsMessage or is an instance of MultiPartMessage.

getParts

public final SmsMessage[] getParts()
Returns the message parts created by buildParts(int).

Specified by:
getParts in interface MultiPartMessage
Returns:
a array containing one or multiple short messages.
See Also:
MultiPartMessage.getParts()

getBytes

public byte[] getBytes()
Get the message data. This method is a synonym for getUserData().

Overrides:
getBytes in class SmsMessage
Returns:
a byte array containing the user data or null if no user data is present.
See Also:
getUserData()

getMessage

public java.lang.String getMessage()
Gets the message as unformated text.

Overrides:
getMessage in class SmsMessage
Returns:
the User Data converted to a String object.
See Also:
Message.getMessage()

getUserData

public byte[] getUserData()
Get the User Data of this message. If some EMSElement objects have been added, the text message (getMessage() is converted into bytes and returned.

Overrides:
getUserData in class SmsMessage
Returns:
the user data
See Also:
SmsMessage.getUserData()

setMessage

public void setMessage(java.lang.String message)
Sets the messages explicitly. The EMSElement objects which have been added are removed internally.

Overrides:
setMessage in class SmsMessage
Parameters:
message - a text message
See Also:
Message.setMessage(java.lang.String)

setUserData

public void setUserData(byte[] data)
Sets the messages data explicitly. The EMSElement objects which have been added are removed internally.

Overrides:
setUserData in class SmsMessage
Parameters:
data - the user data as byte array or null to clear the user data.
See Also:
SmsMessage.setUserData(byte[])

setMessage

public void setMessage(byte[] bytes)
Sets the messages data explicitly. The EMSElement objects which have been added are removed internally.

Overrides:
setMessage in class SmsMessage
Parameters:
bytes - the user data as byte array
See Also:
Message.setMessage(byte[])


object XP, Inc. © 2000-2008. All rights reserved object XP