%PDF- %PDF-
Direktori : /proc/self/root/home/bitrix/www/bitrix/modules/sale/lib/location/util/ |
Current File : //proc/self/root/home/bitrix/www/bitrix/modules/sale/lib/location/util/assert.php |
<? /** * This class is for internal use only, not a part of public API. * It can be changed at any time without notification. * * @access private */ namespace Bitrix\Sale\Location\Util; use Bitrix\Main; use Bitrix\Main\Localization\Loc; Loc::loadMessages(__FILE__); class Assert { // checkers /** * Method checks if the given argument is an integer value, or can be casted to it * * @param mixed $arg argument to check * @param string $argName argument name to figure in a error message * @param string $customMsg custom message to be shown instead of a standard one * * @throws \Bitrix\Main\ArgumentException * * @return integer checked and casted value */ public final static function expectInteger($arg, $argName = '', $customMsg = '') { $argInt = intval($arg); if($arg != $argInt) throw new Main\ArgumentException(self::formMessage('SALE_LOCATION_ASSERT_INTEGER_EXPECTED', $argName, $customMsg)); return $argInt; } /** * Method checks if the given argument is a positive integer value, or can be casted to it * * @param mixed $arg argument to check * @param string $argName argument name to figure in a error message * @param string $customMsg custom message to be shown instead of a standard one * * @throws \Bitrix\Main\ArgumentException * * @return integer checked and casted value */ public final static function expectIntegerPositive($arg, $argName = '', $customMsg = '') { $argInt = intval($arg); if($arg != $argInt || $argInt <= 0) throw new Main\ArgumentException(self::formMessage('SALE_LOCATION_ASSERT_INTEGER_NOTNULL_EXPECTED', $argName, $customMsg)); return $argInt; } /** * Method checks if the given argument is a non-negative integer value, or can be casted to it * * @param mixed $arg argument to check * @param string $argName argument name to figure in a error message * @param string $customMsg custom message to be shown instead of a standard one * * @throws \Bitrix\Main\ArgumentException * * @return integer checked and casted value */ public final static function expectIntegerNonNegative($arg, $argName = '', $customMsg = '') { $argInt = intval($arg); if($arg != $argInt || $argInt < 0) throw new Main\ArgumentException(self::formMessage('SALE_LOCATION_ASSERT_INTEGER_NONNEGATIVE_EXPECTED', $argName, $customMsg)); return $argInt; } /** * Method checks if the given argument is a non-zero-length string value, or can be casted to it * * @param mixed $arg argument to check * @param string $argName argument name to figure in a error message * @param string $customMsg custom message to be shown instead of a standard one * * @throws \Bitrix\Main\ArgumentException * * @return string checked and casted value */ public final static function expectStringNotNull($arg, $argName = '', $customMsg = '') { if(!strlen($arg)) throw new Main\ArgumentException(self::formMessage('SALE_LOCATION_ASSERT_STRING_NOTNULL_EXPECTED', $argName, $customMsg)); return (string) $arg; } /** * Method checks if the given argument is an array * * @param mixed[] $arg argument to check * @param string $argName argument name to figure in a error message * @param string $customMsg custom message to be shown instead of a standard one * * @throws \Bitrix\Main\ArgumentException * * @return mixed[] value being checked */ public final static function expectArray($arg, $argName = '', $customMsg = '') { if(!is_array($arg)) throw new Main\ArgumentException(self::formMessage('SALE_LOCATION_ASSERT_ARRAY_EXPECTED', $argName, $customMsg)); return $arg; } /** * Method checks if the given argument is a non-empty array * * @param mixed[] $arg argument to check * @param string $argName argument name to figure in a error message * @param string $customMsg custom message to be shown instead of a standard one * * @throws \Bitrix\Main\ArgumentException * * @return mixed[] value being checked */ public final static function expectNotEmptyArray($arg, $argName = '', $customMsg = '') { if(!is_array($arg) || empty($arg)) throw new Main\ArgumentException(self::formMessage('SALE_LOCATION_ASSERT_ARRAY_NOT_EMPTY_EXPECTED', $argName, $customMsg)); return $arg; } /** * Method checks if the given argument is a non-empty array of unique positive integers (or somehow can be casted to it) * * @param mixed[] $arg argument to check * @param string $argName argument name to figure in a error message * @param string $customMsg custom message to be shown instead of a standard one * * @throws \Bitrix\Main\ArgumentException * * @return integer[] checked and casted value */ public final static function expectArrayOfUniqueIntegerNotNull($arg, $argName = '', $customMsg = '') { if(!is_array($arg)) throw new Main\ArgumentException(self::formMessage('SALE_LOCATION_ASSERT_ARRAY_EXPECTED', $argName, $customMsg)); $arg = array_unique(array_values($arg)); foreach($arg as $k => $v) { $vInt = intval($v); if($v != $vInt || $vInt == 0) throw new Main\ArgumentException(self::formMessage('SALE_LOCATION_ASSERT_ARRAY_OF_INTEGER_NOT_NULL_EXPECTED', $argName, $customMsg)); $arg[$k] = $vInt; // it can be casted to integer } return $arg; } /** * Method checks if the given argument is a non-empty array of unique non-zero-length strings (or somehow can be casted to it) * * @param mixed[] $arg argument to check * @param string $argName argument name to figure in a error message * @param string $customMsg custom message to be shown instead of a standard one * * @throws \Bitrix\Main\ArgumentException * * @return string[] checked and casted value */ public final static function expectArrayOfUniqueStringNotNull($arg, $argName = '', $customMsg = '') { if(!is_array($arg)) throw new Main\ArgumentException(self::formMessage('SALE_LOCATION_ASSERT_ARRAY_EXPECTED', $argName, $customMsg)); $arg = array_unique(array_values($arg)); foreach($arg as $k => $v) { $v = (string) $v; if(!strlen($v)) throw new Main\ArgumentException(self::formMessage('SALE_LOCATION_ASSERT_ARRAY_OF_STRING_NOT_NULL_EXPECTED', $argName, $customMsg)); $arg[$k] = $v; } return $arg; } /** * Method checks if the given argument belongs to a set of elements * * @param mixed[] $arg argument to check * @param mixed[] $enum enumeration to check argument belong to * @param string $argName argument name to figure in a error message * @param string $customMsg custom message to be shown instead of a standard one * * @throws \Bitrix\Main\ArgumentException * * @return mixed[] checked and casted value */ public final static function expectEnumerationMember($arg, $enum = array(), $argName = '', $customMsg = '') { if(!strlen($arg)) throw new Main\ArgumentException(Loc::getMessage('SALE_LOCATION_ASSERT_EMPTY_ARGUMENT')); if(!is_array($enum) || empty($enum)) throw new Main\ArgumentException(Loc::getMessage('SALE_LOCATION_ASSERT_EMPTY_ENUMERATION')); // we cannot use in_array() here, kz we need for real data type foreach($enum as $variant) { if($variant == $arg) return $variant; } throw new Main\ArgumentException(self::formMessage('SALE_LOCATION_ASSERT_ITEM_NOT_IN_ENUMERATION', $argName, $customMsg)); } // casters public static function castTrimLC($value) { return ToLower(trim($value)); } // announcers /** * Method announces that method or action is not implemented * * @param string $msg message to be shown * * @throws \Bitrix\Main\NotImplementedException */ public final static function announceNotImplemented($msg = '') { throw new Main\NotImplementedException($msg); } /** * Method announces that method or action is not supported * * @param string $msg message to be shown * * @throws \Bitrix\Main\NotImplementedException */ public final static function announceNotSupported($msg = '') { throw new Main\NotSupportedException($msg); } private final static function formMessage($msgCode, $argName = '', $customMsg = '') { if(strlen($customMsg)) return str_replace('#ARG_NAME#', $argName, $customMsg); return Loc::getMessage($msgCode, array('#ARG_NAME#' => strlen($argName) ? ' "'.$argName.'" ' : ' ')); } }