class Factory
Same name in this branch
- 11.1.x vendor/phpunit/phpunit/src/Runner/Filter/Factory.php \PHPUnit\Runner\Filter\Factory
- 11.1.x vendor/phpunit/php-file-iterator/src/Factory.php \SebastianBergmann\FileIterator\Factory
- 11.1.x vendor/sebastian/comparator/src/Factory.php \SebastianBergmann\Comparator\Factory
- 11.1.x vendor/phpspec/prophecy/src/Prophecy/Comparator/Factory.php \Prophecy\Comparator\Factory
- 11.1.x vendor/composer/composer/src/Composer/Factory.php \Composer\Factory
Factory for centralize constraint initialization.
Hierarchy
- class \JsonSchema\Constraints\Factory
Expanded class hierarchy of Factory
5 string references to 'Factory'
- FileLoader::registerClasses in vendor/
symfony/ dependency-injection/ Loader/ FileLoader.php - Registers a set of classes as services using PSR-4 for discovery.
- XmlDumper::addService in vendor/
symfony/ dependency-injection/ Dumper/ XmlDumper.php - XmlFileLoader::parseDefinition in vendor/
symfony/ dependency-injection/ Loader/ XmlFileLoader.php - Parses an individual Definition.
- YamlFileLoader::parseCallable in vendor/
symfony/ dependency-injection/ Loader/ YamlFileLoader.php - YamlFileLoader::parseDefinition in vendor/
symfony/ dependency-injection/ Loader/ YamlFileLoader.php
File
-
vendor/
justinrainbow/ json-schema/ src/ JsonSchema/ Constraints/ Factory.php, line 22
Namespace
JsonSchema\ConstraintsView source
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;
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
Factory::$checkMode | private | property | |
Factory::$constraintMap | protected | property | |
Factory::$errorContext | protected | property | |
Factory::$instanceCache | private | property | |
Factory::$schemaStorage | protected | property | |
Factory::$typeCheck | private | property | |
Factory::$uriRetriever | protected | property | |
Factory::addConfig | public | function | Enable checkMode flags |
Factory::createInstanceFor | public | function | Create a constraint instance for the given constraint name. |
Factory::getConfig | public | function | Get checkMode option |
Factory::getErrorContext | public | function | Get the error context |
Factory::getSchemaStorage | public | function | |
Factory::getTypeCheck | public | function | |
Factory::getUriRetriever | public | function | |
Factory::removeConfig | public | function | Disable checkMode flags |
Factory::setConfig | public | function | Set config values |
Factory::setConstraintClass | public | function | |
Factory::setErrorContext | public | function | Set the error context |
Factory::__construct | public | function |