%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/sender/lib/internals/ |
| Current File : /home/bitrix/www/bitrix/modules/sender/lib/internals/classconstant.php |
<?php
/**
* Bitrix Framework
* @package bitrix
* @subpackage sender
* @copyright 2001-2012 Bitrix
*/
namespace Bitrix\Sender\Internals;
use Bitrix\Main\Localization\Loc;
use Bitrix\Sender\Integration;
Loc::loadMessages(__FILE__);
/**
* Class Type
* @package Bitrix\Sender\Internals
*/
class ClassConstant
{
/**
* Get caption.
*
* @param integer $id ID.
* @return integer|null
*/
public static function getName($id)
{
static $integration = null;
if ($integration === null)
{
$integration = Integration\EventHandler::onConstantList(get_called_class());
}
foreach ($integration as $item)
{
if ($item['id'] === $id)
{
return $item['name'];
}
}
return static::getCode($id);
}
/**
* Get class constants.
*
* @return array
*/
protected static function getConstants()
{
static $constants = null;
if ($constants === null)
{
$class = new \ReflectionClass(get_called_class());
$list = $class->getConstants();
$integration = Integration\EventHandler::onConstantList(get_called_class());
foreach ($integration as $item)
{
$list[$item['code']] = $item['id'];
}
$constants = $list;
}
return $constants;
}
/**
* Get list.
*
* @return array
*/
public static function getList()
{
$result = array();
$constants = static::getConstants();
foreach ($constants as $code => $id)
{
$result[] = $id;
}
return $result;
}
/**
* Get codes.
*
* @return array
*/
public static function getCodes()
{
$result = array();
$constants = static::getConstants();
foreach ($constants as $code => $id)
{
$result[] = $code;
}
return $result;
}
/**
* Get named list.
*
* @return array
*/
public static function getNamedList()
{
$result = array();
$constants = static::getConstants();
foreach ($constants as $code => $id)
{
$result[$id] = static::getName($id);
}
return $result;
}
/**
* Get named list.
*
* @return array
*/
public static function getNamedCodes()
{
$result = array();
$constants = static::getConstants();
foreach ($constants as $code => $id)
{
$result[$code] = static::getName($id);
}
return $result;
}
/**
* Get ID.
*
* @param string $code Code.
* @return integer|null
*/
public static function getId($code)
{
$constants = static::getConstants();
return isset($constants[$code]) ? $constants[$code] : null;
}
/**
* Get code.
*
* @param integer $id ID.
* @return string|null
*/
public static function getCode($id)
{
$constants = static::getConstants();
foreach ($constants as $constantCode => $constantId)
{
if ($constantId != $id)
{
continue;
}
return $constantCode;
}
return null;
}
}