rector/vendor/doctrine/inflector/lib/Doctrine/Inflector/GenericLanguageInflectorFactory.php
Tomas Votruba 750add220d Updated Rector to commit 305c524662
305c524662 [TypeDeclaration] Improve typed property (#1221)
2021-11-13 00:51:27 +00:00

54 lines
2.3 KiB
PHP

<?php
declare (strict_types=1);
namespace RectorPrefix20211113\Doctrine\Inflector;
use RectorPrefix20211113\Doctrine\Inflector\Rules\Ruleset;
use function array_unshift;
abstract class GenericLanguageInflectorFactory implements \RectorPrefix20211113\Doctrine\Inflector\LanguageInflectorFactory
{
/** @var Ruleset[] */
private $singularRulesets = [];
/** @var Ruleset[] */
private $pluralRulesets = [];
public final function __construct()
{
$this->singularRulesets[] = $this->getSingularRuleset();
$this->pluralRulesets[] = $this->getPluralRuleset();
}
public final function build() : \RectorPrefix20211113\Doctrine\Inflector\Inflector
{
return new \RectorPrefix20211113\Doctrine\Inflector\Inflector(new \RectorPrefix20211113\Doctrine\Inflector\CachedWordInflector(new \RectorPrefix20211113\Doctrine\Inflector\RulesetInflector(...$this->singularRulesets)), new \RectorPrefix20211113\Doctrine\Inflector\CachedWordInflector(new \RectorPrefix20211113\Doctrine\Inflector\RulesetInflector(...$this->pluralRulesets)));
}
/**
* @param \Doctrine\Inflector\Rules\Ruleset|null $singularRules
* @param bool $reset
*/
public final function withSingularRules($singularRules, $reset = \false) : \RectorPrefix20211113\Doctrine\Inflector\LanguageInflectorFactory
{
if ($reset) {
$this->singularRulesets = [];
}
if ($singularRules instanceof \RectorPrefix20211113\Doctrine\Inflector\Rules\Ruleset) {
\array_unshift($this->singularRulesets, $singularRules);
}
return $this;
}
/**
* @param \Doctrine\Inflector\Rules\Ruleset|null $pluralRules
* @param bool $reset
*/
public final function withPluralRules($pluralRules, $reset = \false) : \RectorPrefix20211113\Doctrine\Inflector\LanguageInflectorFactory
{
if ($reset) {
$this->pluralRulesets = [];
}
if ($pluralRules instanceof \RectorPrefix20211113\Doctrine\Inflector\Rules\Ruleset) {
\array_unshift($this->pluralRulesets, $pluralRules);
}
return $this;
}
protected abstract function getSingularRuleset() : \RectorPrefix20211113\Doctrine\Inflector\Rules\Ruleset;
protected abstract function getPluralRuleset() : \RectorPrefix20211113\Doctrine\Inflector\Rules\Ruleset;
}