GIF89; GIF89; %PDF- %PDF-
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php
/*
* This file is part of the JsonSchema package.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace JsonSchema\Constraints;
use JsonSchema\Exception\InvalidArgumentException;
use JsonSchema\SchemaStorage;
use JsonSchema\SchemaStorageInterface;
use JsonSchema\Uri\UriRetriever;
use JsonSchema\UriRetrieverInterface;
use JsonSchema\Validator;
/**
* Factory for centralize constraint initialization.
*/
class Factory
{
/**
* @var SchemaStorage
*/
protected $schemaStorage;
/**
* @var UriRetriever
*/
protected $uriRetriever;
/**
* @var int
*/
private $checkMode = Constraint::CHECK_MODE_NORMAL;
/**
* @var TypeCheck\TypeCheckInterface[]
*/
private $typeCheck = array();
/**
* @var int Validation context
*/
protected $errorContext = Validator::ERROR_DOCUMENT_VALIDATION;
/**
* @var array
*/
protected $constraintMap = array(
'array' => 'JsonSchema\Constraints\CollectionConstraint',
'collection' => 'JsonSchema\Constraints\CollectionConstraint',
'object' => 'JsonSchema\Constraints\ObjectConstraint',
'type' => 'JsonSchema\Constraints\TypeConstraint',
'undefined' => 'JsonSchema\Constraints\UndefinedConstraint',
'string' => 'JsonSchema\Constraints\StringConstraint',
'number' => 'JsonSchema\Constraints\NumberConstraint',
'enum' => 'JsonSchema\Constraints\EnumConstraint',
'format' => 'JsonSchema\Constraints\FormatConstraint',
'schema' => 'JsonSchema\Constraints\SchemaConstraint',
'validator' => 'JsonSchema\Validator'
);
/**
* @var array<ConstraintInterface>
*/
private $instanceCache = array();
/**
* @param SchemaStorage $schemaStorage
* @param UriRetrieverInterface $uriRetriever
* @param int $checkMode
*/
public function __construct(
SchemaStorageInterface $schemaStorage = null,
UriRetrieverInterface $uriRetriever = null,
$checkMode = Constraint::CHECK_MODE_NORMAL
) {
// set provided config options
$this->setConfig($checkMode);
$this->uriRetriever = $uriRetriever ?: new UriRetriever();
$this->schemaStorage = $schemaStorage ?: new SchemaStorage($this->uriRetriever);
}
/**
* Set config values
*
* @param int $checkMode Set checkMode options - does not preserve existing flags
*/
public function setConfig($checkMode = Constraint::CHECK_MODE_NORMAL)
{
$this->checkMode = $checkMode;
}
/**
* Enable checkMode flags
*
* @param int $options
*/
public function addConfig($options)
{
$this->checkMode |= $options;
}
/**
* Disable checkMode flags
*
* @param int $options
*/
public function removeConfig($options)
{
$this->checkMode &= ~$options;
}
/**
* Get checkMode option
*
* @param int $options Options to get, if null then return entire bitmask
*
* @return int
*/
public function getConfig($options = null)
{
if ($options === null) {
return $this->checkMode;
}
return $this->checkMode & $options;
}
/**
* @return UriRetrieverInterface
*/
public function getUriRetriever()
{
return $this->uriRetriever;
}
public function getSchemaStorage()
{
return $this->schemaStorage;
}
public function getTypeCheck()
{
if (!isset($this->typeCheck[$this->checkMode])) {
$this->typeCheck[$this->checkMode] = ($this->checkMode & Constraint::CHECK_MODE_TYPE_CAST)
? new TypeCheck\LooseTypeCheck()
: new TypeCheck\StrictTypeCheck();
}
return $this->typeCheck[$this->checkMode];
}
/**
* @param string $name
* @param string $class
*
* @return Factory
*/
public function setConstraintClass($name, $class)
{
// Ensure class exists
if (!class_exists($class)) {
throw new InvalidArgumentException('Unknown constraint ' . $name);
}
// Ensure class is appropriate
if (!in_array('JsonSchema\Constraints\ConstraintInterface', class_implements($class))) {
throw new InvalidArgumentException('Invalid class ' . $name);
}
$this->constraintMap[$name] = $class;
return $this;
}
/**
* Create a constraint instance for the given constraint name.
*
* @param string $constraintName
*
* @throws InvalidArgumentException if is not possible create the constraint instance
*
* @return ConstraintInterface|ObjectConstraint
*/
public function createInstanceFor($constraintName)
{
if (!isset($this->constraintMap[$constraintName])) {
throw new InvalidArgumentException('Unknown constraint ' . $constraintName);
}
if (!isset($this->instanceCache[$constraintName])) {
$this->instanceCache[$constraintName] = new $this->constraintMap[$constraintName]($this);
}
return clone $this->instanceCache[$constraintName];
}
/**
* Get the error context
*
* @return string
*/
public function getErrorContext()
{
return $this->errorContext;
}
/**
* Set the error context
*
* @param string $validationContext
*/
public function setErrorContext($errorContext)
{
$this->errorContext = $errorContext;
}
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| TypeCheck | Folder | 0755 |
|
|
| BaseConstraint.php | File | 3.79 KB | 0644 |
|
| CollectionConstraint.php | File | 4.94 KB | 0644 |
|
| Constraint.php | File | 6.39 KB | 0644 |
|
| ConstraintInterface.php | File | 1.53 KB | 0644 |
|
| EnumConstraint.php | File | 1.61 KB | 0644 |
|
| Factory.php | File | 5.57 KB | 0644 |
|
| FormatConstraint.php | File | 8.65 KB | 0644 |
|
| NumberConstraint.php | File | 3.38 KB | 0644 |
|
| ObjectConstraint.php | File | 7.89 KB | 0644 |
|
| SchemaConstraint.php | File | 3.7 KB | 0644 |
|
| StringConstraint.php | File | 1.94 KB | 0644 |
|
| TypeConstraint.php | File | 7.79 KB | 0644 |
|
| UndefinedConstraint.php | File | 15.67 KB | 0644 |
|