Files
server/usr/share/psa-horde/imp/lib/Ftree/Account.php
2026-01-07 20:52:11 +01:00

96 lines
2.1 KiB
PHP

<?php
/**
* Copyright 2013-2017 Horde LLC (http://www.horde.org/)
*
* See the enclosed file COPYING for license information (GPL). If you
* did not receive this file, see http://www.horde.org/licenses/gpl.
*
* @category Horde
* @copyright 2013-2017 Horde LLC
* @license http://www.horde.org/licenses/gpl GPL
* @package IMP
*/
/**
* Abstract class definining an account source for the IMP folder tree.
*
* @author Michael Slusarz <slusarz@horde.org>
* @category Horde
* @copyright 2013-2017 Horde LLC
* @license http://www.horde.org/licenses/gpl GPL
* @package IMP
*/
abstract class IMP_Ftree_Account implements Serializable
{
/* Mask constants for getList(). */
const INIT = 1;
const UNSUB = 2;
/* Mask constants for delete(). */
const DELETE_ELEMENT = 1;
const DELETE_ELEMENT_QUICK = 2;
const DELETE_RECURSIVE = 4;
/**
* Account ID.
*
* @var string
*/
protected $_id;
/**
* Constructor.
*
* @param string $id Account ID.
*/
public function __construct($id = IMP_Ftree::BASE_ELT)
{
$this->_id = strval($id);
}
/**
* @return string Account ID.
*/
public function __toString()
{
return $this->_id;
}
/**
* Return a list of mailbox to attribute pairs.
*
* @param array $query Array of search queries.
* @param mixed $mask Integer mask (INIT and UNSUB constants).
*
* @return array Array of elements to be added via
* IMP_Ftree#_insertElt().
*/
abstract public function getList($query = array(), $mask = 0);
/**
* Return the mailbox selction to delete.
*
* @param IMP_Ftree_Element $elt Element to delete.
*
* @return integer Mask of mailboxes to delete.
*/
abstract public function delete(IMP_Ftree_Element $elt);
/* Serializable methods. */
/**
*/
public function serialize()
{
return $this->_id;
}
/**
*/
public function unserialize($data)
{
$this->_id = $data;
}
}