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

80 lines
2.0 KiB
PHP

<?php
/**
* Copyright 2009-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 2009-2017 Horde LLC
* @license http://www.horde.org/licenses/gpl GPL
* @package IMP
*/
/**
* The IMP_Compose_Exception:: class handles exceptions thrown from the
* IMP_Compose class.
*
* @author Michael Slusarz <slusarz@horde.org>
* @category Horde
* @copyright 2009-2017 Horde LLC
* @license http://www.horde.org/licenses/gpl GPL
* @package IMP
*/
class IMP_Compose_Exception extends IMP_Exception
{
/**
* Stores information on whether an encryption dialog window needs
* to be opened.
*
* @var string
*/
public $encrypt = null;
/**
* If set, indicates that this identity matches the given to address.
*
* @var integer
*/
public $tied_identity = null;
/**
* Creates a new Exception object and immediately logs the message.
*
* @param string $log The log level to immediately log the message to.
* If empty, will only log message if log() is
* explicitly called.
* @param mixed $message The exception message, PEAR_Error object, or
* Exception object.
* @param integer $code A numeric error code.
*
* @return IMP_Compose_Exception Exception argument.
*/
static public function createAndLog()
{
$e = new self(func_get_arg(1), func_num_args() == 3 ? func_get_arg(2) : null);
$e->log(func_get_arg(0));
return $e;
}
/**
* Log error message.
*
* @param string $level Level to log at.
*
* @return boolean True if message was logged.
*/
public function log($level = 'ERR')
{
if ($this->logged) {
return false;
}
Horde::log($this, $level);
$this->logged = true;
return true;
}
}