package org.okip.service.usermessaging.api;



// Interface UserMessage
// Notes: the Agent is assumed to be the originator of the message. Message is
// assumed to have a Type (that may be application dependent), a Header, and a
// Body.

/**
 * Interface UserMessage
 *
 *
 * @author
 * @version %I%, %G%
 */
public interface UserMessage
extends java.io.Serializable {

  /**
   * Method getMessageString
   *
   *
   * @return String
   *
   */
  public String getMessageString();

  /**
   * Method setMessageString
   *
   *
   * @param message
   *
   */
  public void setMessageString(String message);

  /**
   * Method getHeader
   *
   *
   * @return Object
   *
   * @throws org.okip.service.usermessaging.api.UserMessageException
   *
   */
  public Object getHeader()
  throws org.okip.service.usermessaging.api.UserMessageException;

  /**
   * Method getBody
   *
   *
   * @return Object
   *
   */
  public Object getBody();

  /**
   * Method getMessageMediaType
   *
   *
   * @return String
   *
   * @throws org.okip.service.usermessaging.api.UserMessageException
   *
   */
  public String getMessageMediaType()
  throws org.okip.service.usermessaging.api.UserMessageException;

  /**
   * Method getMessageDeliveryType
   *
   *
   * @return org.okip.service.usermessaging.api.UserMessageDeliveryType
   *
   * @throws org.okip.service.usermessaging.api.UserMessageException
   *
   */
  public org.okip.service.usermessaging.api.UserMessageDeliveryType getMessageDeliveryType()
  throws org.okip.service.usermessaging.api.UserMessageException;

  /**
   * Method getAgent
   *
   *
   * @return org.okip.service.shared.api.Agent
   *
   */
  public org.okip.service.shared.api.Agent getAgent();

  /**
   * Method getMessageTopic
   *
   *
   * @return org.okip.service.usermessaging.api.UserMessageTopic
   *
   * @throws org.okip.service.usermessaging.api.UserMessageException
   *
   */
  public org.okip.service.usermessaging.api.UserMessageTopic getMessageTopic()
  throws org.okip.service.usermessaging.api.UserMessageException;

  /**
   * Method getTimeCreated
   *
   *
   * @return java.util.Date
   *
   */
  public java.util.Date getTimeCreated();

  //      throws org.okip.service.usermessaging.api.UserMessageException;

  /**
   * Method setTimeCreated
   *
   *
   */
  public void setTimeCreated();

  /**
   * Method getTimeString
   *
   *
   * @return java.lang.String
   *
   */
  public java.lang.String getTimeString();

}
;
