/**
 * IMessage.java
 * Created Apr 26, 2006
 * Copyright (C) Tandberg Television 2006
 */
package com.tandbergtv.workflow.message;

/**
 * Represents a message that flows through the adaptor pipeline. Each message must have a unique
 * type which can contain descriptive information. It also has a body or payload and an optional
 * attachment. Messages that are intended for asynchronous request-reply should carry a unique 
 * correlation key.
 *  
 * Note that attachments are biased towards HTTP / SOAP style messages.
 * 
 * @author Sahil Verma
 */
public interface IMessage {

	/**
	 * Gets the message body
	 * 
	 * @return The Payload associated with this message
	 */
	IPayload getPayload();
	
	/* FIXME Maybe this belongs in a separate interface - IMessageWithAttachment? */
	IMessageAttachment getAttachment();
}
