/*
* SIP Communicator, the OpenSource Java VoIP and Instant Messaging client.
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package net.java.sip.communicator.service.protocol;
/**
* Used to access the content of instant messages that are sent or received via
* the instant messaging operation set.
* <p>
* This class provides easy access to the content and key fields of an instant
* Message. Content types are represented using MIME types. [IETF RFC 2045-2048].
* <p>
* Messages are created through the <tt>OperationSetBaicInstanceMessaging</tt>
* operation set.
* <p>
* All messages have message ids that allow the underlying implementation to
* notify the user of their successful delivery.
*
* @author Emil Ivov
*/
public interface Message
{
/**
* Returns the content of this message if representable in text form or null
* if this message does not contain text data.
* @return a String containing the content of this message or null if the
* message does not contain data representable in text form.
*/
public String getContent();
/**
* Returns the MIME type for the message content.
* @return a String containing the mime type of the message contant.
*/
public String getContentType();
/**
* Get the raw/binary content of an instant message.
* @return a byte[] array containing message bytes.
*/
public byte[] getRawData();
/**
* Returns the MIME content encoding of this message.
* @return a String indicating the MIME encoding of this message.
*/
public String getEncoding();
/**
* Returns the subject of this message or null if the message contains no
* subject.
* @return the subject of this message or null if the message contains no
* subject.
*/
public String getSubject();
/**
* Returns the size of the content stored in this message.
* @return an int indicating the number of bytes that this message contains.
*/
public int getSize();
/**
* Returns a unique identifier of this message.
* @return a String that uniquely represents this message in the scope of
* this protocol.
*/
public String getMessageUID();
}