<?php
/*
* This file is part of SwiftMailer.
* (c) 2004-2009 Chris Corbyn
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
/**
* A MIME entity, such as an attachment.
*
* @author Chris Corbyn
*/
interface Swift_Mime_MimeEntity extends Swift_Mime_CharsetObserver, Swift_Mime_EncodingObserver
{
/** Main message document; there can only be one of these */
const LEVEL_TOP = 16;
/** An entity which nests with the same precedence as an attachment */
const LEVEL_MIXED = 256;
/** An entity which nests with the same precedence as a mime part */
const LEVEL_ALTERNATIVE = 4096;
/** An entity which nests with the same precedence as embedded content */
const LEVEL_RELATED = 65536;
/**
* Get the level at which this entity shall be nested in final document.
*
* The lower the value, the more outermost the entity will be nested.
*
* @see LEVEL_TOP, LEVEL_MIXED, LEVEL_RELATED, LEVEL_ALTERNATIVE
*
* @return int
*/
public function getNestingLevel();
/**
* Get the qualified content-type of this mime entity.
*
* @return string
*/
public function getContentType();
/**
* Returns a unique ID for this entity.
*
* For most entities this will likely be the Content-ID, though it has
* no explicit semantic meaning and can be considered an identifier for
* programming logic purposes.
*
* If a Content-ID header is present, this value SHOULD match the value of
* the header.
*
* @return string
*/
public function getId();
/**
* Get all children nested inside this entity.
*
* These are not just the immediate children, but all children.
*
* @return Swift_Mime_MimeEntity[]
*/
public function getChildren();
/**
* Set all children nested inside this entity.
*
* This includes grandchildren.
*
* @param Swift_Mime_MimeEntity[] $children
*/
public function setChildren(array $children);
/**
* Get the collection of Headers in this Mime entity.
*
* @return Swift_Mime_HeaderSet
*/
public function getHeaders();
/**
* Get the body content of this entity as a string.
*
* Returns NULL if no body has been set.
*
* @return string|null
*/
public function getBody();
/**
* Set the body content of this entity as a string.
*
* @param string $body
* @param string $contentType optional
*/
public function setBody($body, $contentType = null);
/**
* Get this entire entity in its string form.
*
* @return string
*/
public function toString();
/**
* Get this entire entity as a ByteStream.
*
* @param Swift_InputByteStream $is to write to
*/
public function toByteStream(Swift_InputByteStream $is);
}