diff options
Diffstat (limited to 'libs/Zend/Mail/Storage/Abstract.php')
-rw-r--r-- | libs/Zend/Mail/Storage/Abstract.php | 366 |
1 files changed, 0 insertions, 366 deletions
diff --git a/libs/Zend/Mail/Storage/Abstract.php b/libs/Zend/Mail/Storage/Abstract.php deleted file mode 100644 index b016bc849d..0000000000 --- a/libs/Zend/Mail/Storage/Abstract.php +++ /dev/null @@ -1,366 +0,0 @@ -<?php -/** - * Zend Framework - * - * LICENSE - * - * This source file is subject to the new BSD license that is bundled - * with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * http://framework.zend.com/license/new-bsd - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@zend.com so we can send you a copy immediately. - * - * @category Zend - * @package Zend_Mail - * @subpackage Storage - * @copyright Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Abstract.php 23775 2011-03-01 17:25:24Z ralph $ - */ - - -/** - * @category Zend - * @package Zend_Mail - * @subpackage Storage - * @copyright Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com) - * @license http://framework.zend.com/license/new-bsd New BSD License - */ -abstract class Zend_Mail_Storage_Abstract implements Countable, ArrayAccess, SeekableIterator -{ - /** - * class capabilities with default values - * @var array - */ - protected $_has = array('uniqueid' => true, - 'delete' => false, - 'create' => false, - 'top' => false, - 'fetchPart' => true, - 'flags' => false); - - /** - * current iteration position - * @var int - */ - protected $_iterationPos = 0; - - /** - * maximum iteration position (= message count) - * @var null|int - */ - protected $_iterationMax = null; - - /** - * used message class, change it in an extened class to extend the returned message class - * @var string - */ - protected $_messageClass = 'Zend_Mail_Message'; - - /** - * Getter for has-properties. The standard has properties - * are: hasFolder, hasUniqueid, hasDelete, hasCreate, hasTop - * - * The valid values for the has-properties are: - * - true if a feature is supported - * - false if a feature is not supported - * - null is it's not yet known or it can't be know if a feature is supported - * - * @param string $var property name - * @return bool supported or not - * @throws Zend_Mail_Storage_Exception - */ - public function __get($var) - { - if (strpos($var, 'has') === 0) { - $var = strtolower(substr($var, 3)); - return isset($this->_has[$var]) ? $this->_has[$var] : null; - } - - /** - * @see Zend_Mail_Storage_Exception - */ - // require_once 'Zend/Mail/Storage/Exception.php'; - throw new Zend_Mail_Storage_Exception($var . ' not found'); - } - - - /** - * Get a full list of features supported by the specific mail lib and the server - * - * @return array list of features as array(featurename => true|false[|null]) - */ - public function getCapabilities() - { - return $this->_has; - } - - - /** - * Count messages messages in current box/folder - * - * @return int number of messages - * @throws Zend_Mail_Storage_Exception - */ - abstract public function countMessages(); - - - /** - * Get a list of messages with number and size - * - * @param int $id number of message - * @return int|array size of given message of list with all messages as array(num => size) - */ - abstract public function getSize($id = 0); - - - /** - * Get a message with headers and body - * - * @param int $id number of message - * @return Zend_Mail_Message - */ - abstract public function getMessage($id); - - - /** - * Get raw header of message or part - * - * @param int $id number of message - * @param null|array|string $part path to part or null for messsage header - * @param int $topLines include this many lines with header (after an empty line) - * @return string raw header - */ - abstract public function getRawHeader($id, $part = null, $topLines = 0); - - /** - * Get raw content of message or part - * - * @param int $id number of message - * @param null|array|string $part path to part or null for messsage content - * @return string raw content - */ - abstract public function getRawContent($id, $part = null); - - /** - * Create instance with parameters - * - * @param array $params mail reader specific parameters - * @throws Zend_Mail_Storage_Exception - */ - abstract public function __construct($params); - - - /** - * Destructor calls close() and therefore closes the resource. - */ - public function __destruct() - { - $this->close(); - } - - - /** - * Close resource for mail lib. If you need to control, when the resource - * is closed. Otherwise the destructor would call this. - * - * @return null - */ - abstract public function close(); - - - /** - * Keep the resource alive. - * - * @return null - */ - abstract public function noop(); - - /** - * delete a message from current box/folder - * - * @return null - */ - abstract public function removeMessage($id); - - /** - * get unique id for one or all messages - * - * if storage does not support unique ids it's the same as the message number - * - * @param int|null $id message number - * @return array|string message number for given message or all messages as array - * @throws Zend_Mail_Storage_Exception - */ - abstract public function getUniqueId($id = null); - - /** - * get a message number from a unique id - * - * I.e. if you have a webmailer that supports deleting messages you should use unique ids - * as parameter and use this method to translate it to message number right before calling removeMessage() - * - * @param string $id unique id - * @return int message number - * @throws Zend_Mail_Storage_Exception - */ - abstract public function getNumberByUniqueId($id); - - // interface implementations follows - - /** - * Countable::count() - * - * @return int - */ - public function count() - { - return $this->countMessages(); - } - - - /** - * ArrayAccess::offsetExists() - * - * @param int $id - * @return boolean - */ - public function offsetExists($id) - { - try { - if ($this->getMessage($id)) { - return true; - } - } catch(Zend_Mail_Storage_Exception $e) {} - - return false; - } - - - /** - * ArrayAccess::offsetGet() - * - * @param int $id - * @return Zend_Mail_Message message object - */ - public function offsetGet($id) - { - return $this->getMessage($id); - } - - - /** - * ArrayAccess::offsetSet() - * - * @param id $id - * @param mixed $value - * @throws Zend_Mail_Storage_Exception - * @return void - */ - public function offsetSet($id, $value) - { - /** - * @see Zend_Mail_Storage_Exception - */ - // require_once 'Zend/Mail/Storage/Exception.php'; - throw new Zend_Mail_Storage_Exception('cannot write mail messages via array access'); - } - - - /** - * ArrayAccess::offsetUnset() - * - * @param int $id - * @return boolean success - */ - public function offsetUnset($id) - { - return $this->removeMessage($id); - } - - - /** - * Iterator::rewind() - * - * Rewind always gets the new count from the storage. Thus if you use - * the interfaces and your scripts take long you should use reset() - * from time to time. - * - * @return void - */ - public function rewind() - { - $this->_iterationMax = $this->countMessages(); - $this->_iterationPos = 1; - } - - - /** - * Iterator::current() - * - * @return Zend_Mail_Message current message - */ - public function current() - { - return $this->getMessage($this->_iterationPos); - } - - - /** - * Iterator::key() - * - * @return int id of current position - */ - public function key() - { - return $this->_iterationPos; - } - - - /** - * Iterator::next() - * - * @return void - */ - public function next() - { - ++$this->_iterationPos; - } - - - /** - * Iterator::valid() - * - * @return boolean - */ - public function valid() - { - if ($this->_iterationMax === null) { - $this->_iterationMax = $this->countMessages(); - } - return $this->_iterationPos && $this->_iterationPos <= $this->_iterationMax; - } - - - /** - * SeekableIterator::seek() - * - * @param int $pos - * @return void - * @throws OutOfBoundsException - */ - public function seek($pos) - { - if ($this->_iterationMax === null) { - $this->_iterationMax = $this->countMessages(); - } - - if ($pos > $this->_iterationMax) { - throw new OutOfBoundsException('this position does not exist'); - } - $this->_iterationPos = $pos; - } - -} |