👁 查看:JsonMapperException.php
路径:/home/forge/woocommerce-square/vendor/apimatic/jsonmapper/src/JsonMapperException.php
大小:5.77 KB · 修改:2025-12-23 20:26:26 · 权限:0644 · 可写
<?php
/**
* Part of JsonMapper
*
* PHP version 5
*
* @category Netresearch
* @package JsonMapper
* @author Christian Weiske <christian.weiske@netresearch.de>
* @license OSL-3.0 http://opensource.org/licenses/osl-3.0
* @link http://www.netresearch.de/
*/
namespace apimatic\jsonmapper;
use RuntimeException;
/**
* Simple exception
*
* @category Netresearch
* @package JsonMapper
* @author Christian Weiske <christian.weiske@netresearch.de>
* @license OSL-3.0 http://opensource.org/licenses/osl-3.0
* @link http://www.netresearch.de/
*/
class JsonMapperException extends RuntimeException
{
/**
* Exception for discarded comments setting in configuration.
*
* @param array $concernedKeys Keys (PHP directives) with issues.
*
* @return JsonMapperException
*/
static function commentsDisabledInConfigurationException($concernedKeys)
{
return new self(
"Comments cannot be discarded in the configuration file i.e." .
" the php.ini file; doc comments are a requirement for JsonMapper." .
" Following configuration keys must have a value set to \"1\": " .
implode(", ", $concernedKeys) . "."
);
}
/**
* Exception for non-existent key in an object.
*
* @param string $key The missing key/property.
* @param string $class The class in which the key is missing.
* @param bool $setterException Raise an exception specific to
* missing a setter within the class for
* the specified string.
*
* @return JsonMapperException
*/
static function undefinedPropertyException(
$key,
$class,
$setterException = false
) {
$err = $setterException ? 'has no public setter method' : 'does not exist';
return new self("JSON property '$key' $err in object of type '$class'");
}
/**
* Exception for non-existent key in an object.
*
* @param string $key The property missing type.
* @param string $strClassName The class in which the property is missing type.
*
* @return JsonMapperException
*/
static function missingTypePropertyException($key, $strClassName)
{
return new self("Empty type at property '$strClassName::$$key'");
}
/**
* Exception for an unCallable Factory Method.
*
* @param string $factoryMethod The concerned factory method.
* @param string $strClassName Related class name.
*
* @return JsonMapperException
*/
static function unCallableFactoryMethodException($factoryMethod, $strClassName)
{
return new self(
"Factory method '$factoryMethod' referenced by " .
"'$strClassName' is not callable."
);
}
/**
* Exception for not able to call factory method with the given value.
*
* @param string $argType Type of the argument passed in method.
* @param string $reasons Exception message received from factory method.
*
* @return JsonMapperException
*/
static function invalidArgumentFactoryMethodException($argType, $reasons)
{
return new self(
"Provided factory methods are not callable with " .
"the value of Type: $argType\n$reasons"
);
}
/**
* Exception when it is not possible to map an object to a specific type.
*
* @param string $typeName Name of type to map json object on.
* @param string $typeGroup Group name of the type provided.
* @param string $value Value that should be mapped by typeGroup
* i.e. JSON string.
*
* @return JsonMapperException
*/
static function unableToMapException($typeName, $typeGroup, $value)
{
return new self("Unable to map $typeName: $typeGroup on: $value");
}
/**
* A property marked as required was missing in the object provided.
*
* @param string $propertyName Concerned property's name.
* @param string $className The class name in which the property wasn't found.
*
* @return JsonMapperException
*/
static function requiredPropertyMissingException($propertyName, $className)
{
return new self(
"Required property '$propertyName' of class " .
"'$className' is missing in JSON data"
);
}
/**
* No required arguments were provided.
*
* @param string $class The concerned class name.
* @param int $ctorReqParamNumber The number of req params in constructor.
*
* @return JsonMapperException
*/
static function noArgumentsException($class, $ctorReqParamNumber)
{
return new self(
"$class class requires $ctorReqParamNumber "
. "arguments in constructor but none provided"
);
}
/**
* Provided arguments were less than required.
*
* @param string $class The concerned class name.
* @param array $ctorRequiredParamsName Required parameters array.
*
* @return JsonMapperException
*/
static function fewerArgumentsException($class, $ctorRequiredParamsName)
{
return new self(
"Could not find required constructor arguments for $class: "
. implode(", ", $ctorRequiredParamsName)
);
}
/**
* Provided type was not applicable on the given value.
*
* @param string $type The type value could not be mapped to.
* @param string $value Concerned value.
*
* @return JsonMapperException
*/
static function unableToSetTypeException($type, $value)
{
return new self("Could not set type '$type' on value: $value");
}
}