diff options
author | Devian <devianleong@gmail.com> | 2021-04-22 17:11:12 +0800 |
---|---|---|
committer | Devian <devianleong@gmail.com> | 2021-04-22 17:11:12 +0800 |
commit | bf68fa166afb95d682007e7671c2b0692227bec5 (patch) | |
tree | 26091a1e5a821905b8bdba73fd1ddb95e12f887e /vendor/doctrine/collections/lib | |
parent | 745cf2431a71d0e6c5f08f8605839279b2f7496e (diff) |
Initial
Diffstat (limited to 'vendor/doctrine/collections/lib')
12 files changed, 0 insertions, 2053 deletions
diff --git a/vendor/doctrine/collections/lib/Doctrine/Common/Collections/AbstractLazyCollection.php b/vendor/doctrine/collections/lib/Doctrine/Common/Collections/AbstractLazyCollection.php deleted file mode 100644 index 28976f1..0000000 --- a/vendor/doctrine/collections/lib/Doctrine/Common/Collections/AbstractLazyCollection.php +++ /dev/null @@ -1,369 +0,0 @@ -<?php - -namespace Doctrine\Common\Collections; - -use Closure; - -/** - * Lazy collection that is backed by a concrete collection - * - * @phpstan-template TKey - * @psalm-template TKey of array-key - * @psalm-template T - * @template-implements Collection<TKey,T> - */ -abstract class AbstractLazyCollection implements Collection -{ - /** - * The backed collection to use - * - * @psalm-var Collection<TKey,T> - * @var Collection - */ - protected $collection; - - /** @var bool */ - protected $initialized = false; - - /** - * {@inheritDoc} - */ - public function count() - { - $this->initialize(); - - return $this->collection->count(); - } - - /** - * {@inheritDoc} - */ - public function add($element) - { - $this->initialize(); - - return $this->collection->add($element); - } - - /** - * {@inheritDoc} - */ - public function clear() - { - $this->initialize(); - $this->collection->clear(); - } - - /** - * {@inheritDoc} - */ - public function contains($element) - { - $this->initialize(); - - return $this->collection->contains($element); - } - - /** - * {@inheritDoc} - */ - public function isEmpty() - { - $this->initialize(); - - return $this->collection->isEmpty(); - } - - /** - * {@inheritDoc} - */ - public function remove($key) - { - $this->initialize(); - - return $this->collection->remove($key); - } - - /** - * {@inheritDoc} - */ - public function removeElement($element) - { - $this->initialize(); - - return $this->collection->removeElement($element); - } - - /** - * {@inheritDoc} - */ - public function containsKey($key) - { - $this->initialize(); - - return $this->collection->containsKey($key); - } - - /** - * {@inheritDoc} - */ - public function get($key) - { - $this->initialize(); - - return $this->collection->get($key); - } - - /** - * {@inheritDoc} - */ - public function getKeys() - { - $this->initialize(); - - return $this->collection->getKeys(); - } - - /** - * {@inheritDoc} - */ - public function getValues() - { - $this->initialize(); - - return $this->collection->getValues(); - } - - /** - * {@inheritDoc} - */ - public function set($key, $value) - { - $this->initialize(); - $this->collection->set($key, $value); - } - - /** - * {@inheritDoc} - */ - public function toArray() - { - $this->initialize(); - - return $this->collection->toArray(); - } - - /** - * {@inheritDoc} - */ - public function first() - { - $this->initialize(); - - return $this->collection->first(); - } - - /** - * {@inheritDoc} - */ - public function last() - { - $this->initialize(); - - return $this->collection->last(); - } - - /** - * {@inheritDoc} - */ - public function key() - { - $this->initialize(); - - return $this->collection->key(); - } - - /** - * {@inheritDoc} - */ - public function current() - { - $this->initialize(); - - return $this->collection->current(); - } - - /** - * {@inheritDoc} - */ - public function next() - { - $this->initialize(); - - return $this->collection->next(); - } - - /** - * {@inheritDoc} - */ - public function exists(Closure $p) - { - $this->initialize(); - - return $this->collection->exists($p); - } - - /** - * {@inheritDoc} - */ - public function filter(Closure $p) - { - $this->initialize(); - - return $this->collection->filter($p); - } - - /** - * {@inheritDoc} - */ - public function forAll(Closure $p) - { - $this->initialize(); - - return $this->collection->forAll($p); - } - - /** - * {@inheritDoc} - */ - public function map(Closure $func) - { - $this->initialize(); - - return $this->collection->map($func); - } - - /** - * {@inheritDoc} - */ - public function partition(Closure $p) - { - $this->initialize(); - - return $this->collection->partition($p); - } - - /** - * {@inheritDoc} - */ - public function indexOf($element) - { - $this->initialize(); - - return $this->collection->indexOf($element); - } - - /** - * {@inheritDoc} - */ - public function slice($offset, $length = null) - { - $this->initialize(); - - return $this->collection->slice($offset, $length); - } - - /** - * {@inheritDoc} - */ - public function getIterator() - { - $this->initialize(); - - return $this->collection->getIterator(); - } - - /** - * {@inheritDoc} - * - * @psalm-param TKey $offset - */ - public function offsetExists($offset) - { - $this->initialize(); - - return $this->collection->offsetExists($offset); - } - - /** - * {@inheritDoc} - * - * @param int|string $offset - * - * @return mixed - * - * @psalm-param TKey $offset - */ - public function offsetGet($offset) - { - $this->initialize(); - - return $this->collection->offsetGet($offset); - } - - /** - * {@inheritDoc} - * - * @param mixed $value - * - * @psalm-param TKey $offset - */ - public function offsetSet($offset, $value) - { - $this->initialize(); - $this->collection->offsetSet($offset, $value); - } - - /** - * {@inheritDoc} - * - * @psalm-param TKey $offset - */ - public function offsetUnset($offset) - { - $this->initialize(); - $this->collection->offsetUnset($offset); - } - - /** - * Is the lazy collection already initialized? - * - * @return bool - */ - public function isInitialized() - { - return $this->initialized; - } - - /** - * Initialize the collection - * - * @return void - */ - protected function initialize() - { - if ($this->initialized) { - return; - } - - $this->doInitialize(); - $this->initialized = true; - } - - /** - * Do the initialization logic - * - * @return void - */ - abstract protected function doInitialize(); -} diff --git a/vendor/doctrine/collections/lib/Doctrine/Common/Collections/ArrayCollection.php b/vendor/doctrine/collections/lib/Doctrine/Common/Collections/ArrayCollection.php deleted file mode 100644 index e65a8fa..0000000 --- a/vendor/doctrine/collections/lib/Doctrine/Common/Collections/ArrayCollection.php +++ /dev/null @@ -1,441 +0,0 @@ -<?php - -namespace Doctrine\Common\Collections; - -use ArrayIterator; -use Closure; -use Doctrine\Common\Collections\Expr\ClosureExpressionVisitor; -use const ARRAY_FILTER_USE_BOTH; -use function array_filter; -use function array_key_exists; -use function array_keys; -use function array_map; -use function array_reverse; -use function array_search; -use function array_slice; -use function array_values; -use function count; -use function current; -use function end; -use function in_array; -use function key; -use function next; -use function reset; -use function spl_object_hash; -use function uasort; - -/** - * An ArrayCollection is a Collection implementation that wraps a regular PHP array. - * - * Warning: Using (un-)serialize() on a collection is not a supported use-case - * and may break when we change the internals in the future. If you need to - * serialize a collection use {@link toArray()} and reconstruct the collection - * manually. - * - * @phpstan-template TKey - * @psalm-template TKey of array-key - * @psalm-template T - * @template-implements Collection<TKey,T> - * @template-implements Selectable<TKey,T> - */ -class ArrayCollection implements Collection, Selectable -{ - /** - * An array containing the entries of this collection. - * - * @psalm-var array<TKey,T> - * @var array - */ - private $elements; - - /** - * Initializes a new ArrayCollection. - * - * @param array $elements - * - * @psalm-param array<TKey,T> $elements - */ - public function __construct(array $elements = []) - { - $this->elements = $elements; - } - - /** - * {@inheritDoc} - */ - public function toArray() - { - return $this->elements; - } - - /** - * {@inheritDoc} - */ - public function first() - { - return reset($this->elements); - } - - /** - * Creates a new instance from the specified elements. - * - * This method is provided for derived classes to specify how a new - * instance should be created when constructor semantics have changed. - * - * @param array $elements Elements. - * - * @return static - * - * @psalm-param array<TKey,T> $elements - * @psalm-return static<TKey,T> - */ - protected function createFrom(array $elements) - { - return new static($elements); - } - - /** - * {@inheritDoc} - */ - public function last() - { - return end($this->elements); - } - - /** - * {@inheritDoc} - */ - public function key() - { - return key($this->elements); - } - - /** - * {@inheritDoc} - */ - public function next() - { - return next($this->elements); - } - - /** - * {@inheritDoc} - */ - public function current() - { - return current($this->elements); - } - - /** - * {@inheritDoc} - */ - public function remove($key) - { - if (! isset($this->elements[$key]) && ! array_key_exists($key, $this->elements)) { - return null; - } - - $removed = $this->elements[$key]; - unset($this->elements[$key]); - - return $removed; - } - - /** - * {@inheritDoc} - */ - public function removeElement($element) - { - $key = array_search($element, $this->elements, true); - - if ($key === false) { - return false; - } - - unset($this->elements[$key]); - - return true; - } - - /** - * Required by interface ArrayAccess. - * - * {@inheritDoc} - * - * @psalm-param TKey $offset - */ - public function offsetExists($offset) - { - return $this->containsKey($offset); - } - - /** - * Required by interface ArrayAccess. - * - * {@inheritDoc} - * - * @psalm-param TKey $offset - */ - public function offsetGet($offset) - { - return $this->get($offset); - } - - /** - * Required by interface ArrayAccess. - * - * {@inheritDoc} - */ - public function offsetSet($offset, $value) - { - if (! isset($offset)) { - $this->add($value); - - return; - } - - $this->set($offset, $value); - } - - /** - * Required by interface ArrayAccess. - * - * {@inheritDoc} - * - * @psalm-param TKey $offset - */ - public function offsetUnset($offset) - { - $this->remove($offset); - } - - /** - * {@inheritDoc} - */ - public function containsKey($key) - { - return isset($this->elements[$key]) || array_key_exists($key, $this->elements); - } - - /** - * {@inheritDoc} - */ - public function contains($element) - { - return in_array($element, $this->elements, true); - } - - /** - * {@inheritDoc} - */ - public function exists(Closure $p) - { - foreach ($this->elements as $key => $element) { - if ($p($key, $element)) { - return true; - } - } - - return false; - } - - /** - * {@inheritDoc} - */ - public function indexOf($element) - { - return array_search($element, $this->elements, true); - } - - /** - * {@inheritDoc} - */ - public function get($key) - { - return $this->elements[$key] ?? null; - } - - /** - * {@inheritDoc} - */ - public function getKeys() - { - return array_keys($this->elements); - } - - /** - * {@inheritDoc} - */ - public function getValues() - { - return array_values($this->elements); - } - - /** - * {@inheritDoc} - */ - public function count() - { - return count($this->elements); - } - - /** - * {@inheritDoc} - */ - public function set($key, $value) - { - $this->elements[$key] = $value; - } - - /** - * {@inheritDoc} - * - * @psalm-suppress InvalidPropertyAssignmentValue - * - * This breaks assumptions about the template type, but it would - * be a backwards-incompatible change to remove this method - */ - public function add($element) - { - $this->elements[] = $element; - - return true; - } - - /** - * {@inheritDoc} - */ - public function isEmpty() - { - return empty($this->elements); - } - - /** - * Required by interface IteratorAggregate. - * - * {@inheritDoc} - */ - public function getIterator() - { - return new ArrayIterator($this->elements); - } - - /** - * {@inheritDoc} - * - * @return static - * - * @psalm-template U - * @psalm-param Closure(T=):U $func - * @psalm-return static<TKey, U> - */ - public function map(Closure $func) - { - return $this->createFrom(array_map($func, $this->elements)); - } - - /** - * {@inheritDoc} - * - * @return static - * - * @psalm-return static<TKey,T> - */ - public function filter(Closure $p) - { - return $this->createFrom(array_filter($this->elements, $p, ARRAY_FILTER_USE_BOTH)); - } - - /** - * {@inheritDoc} - */ - public function forAll(Closure $p) - { - foreach ($this->elements as $key => $element) { - if (! $p($key, $element)) { - return false; - } - } - - return true; - } - - /** - * {@inheritDoc} - */ - public function partition(Closure $p) - { - $matches = $noMatches = []; - - foreach ($this->elements as $key => $element) { - if ($p($key, $element)) { - $matches[$key] = $element; - } else { - $noMatches[$key] = $element; - } - } - - return [$this->createFrom($matches), $this->createFrom($noMatches)]; - } - - /** - * Returns a string representation of this object. - * - * @return string - */ - public function __toString() - { - return self::class . '@' . spl_object_hash($this); - } - - /** - * {@inheritDoc} - */ - public function clear() - { - $this->elements = []; - } - - /** - * {@inheritDoc} - */ - public function slice($offset, $length = null) - { - return array_slice($this->elements, $offset, $length, true); - } - - /** - * {@inheritDoc} - */ - public function matching(Criteria $criteria) - { - $expr = $criteria->getWhereExpression(); - $filtered = $this->elements; - - if ($expr) { - $visitor = new ClosureExpressionVisitor(); - $filter = $visitor->dispatch($expr); - $filtered = array_filter($filtered, $filter); - } - - $orderings = $criteria->getOrderings(); - - if ($orderings) { - $next = null; - foreach (array_reverse($orderings) as $field => $ordering) { - $next = ClosureExpressionVisitor::sortByField($field, $ordering === Criteria::DESC ? -1 : 1, $next); - } - - uasort($filtered, $next); - } - - $offset = $criteria->getFirstResult(); - $length = $criteria->getMaxResults(); - - if ($offset || $length) { - $filtered = array_slice($filtered, (int) $offset, $length); - } - - return $this->createFrom($filtered); - } -} diff --git a/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Collection.php b/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Collection.php deleted file mode 100644 index ab1e3f8..0000000 --- a/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Collection.php +++ /dev/null @@ -1,297 +0,0 @@ -<?php - -namespace Doctrine\Common\Collections; - -use ArrayAccess; -use Closure; -use Countable; -use IteratorAggregate; - -/** - * The missing (SPL) Collection/Array/OrderedMap interface. - * - * A Collection resembles the nature of a regular PHP array. That is, - * it is essentially an <b>ordered map</b> that can also be used - * like a list. - * - * A Collection has an internal iterator just like a PHP array. In addition, - * a Collection can be iterated with external iterators, which is preferable. - * To use an external iterator simply use the foreach language construct to - * iterate over the collection (which calls {@link getIterator()} internally) or - * explicitly retrieve an iterator though {@link getIterator()} which can then be - * used to iterate over the collection. - * You can not rely on the internal iterator of the collection being at a certain - * position unless you explicitly positioned it before. Prefer iteration with - * external iterators. - * - * @phpstan-template TKey - * @psalm-template TKey of array-key - * @psalm-template T - * @template-extends IteratorAggregate<TKey, T> - * @template-extends ArrayAccess<TKey|null, T> - */ -interface Collection extends Countable, IteratorAggregate, ArrayAccess -{ - /** - * Adds an element at the end of the collection. - * - * @param mixed $element The element to add. - * - * @return true Always TRUE. - * - * @psalm-param T $element - */ - public function add($element); - - /** - * Clears the collection, removing all elements. - * - * @return void - */ - public function clear(); - - /** - * Checks whether an element is contained in the collection. - * This is an O(n) operation, where n is the size of the collection. - * - * @param mixed $element The element to search for. - * - * @return bool TRUE if the collection contains the element, FALSE otherwise. - * - * @psalm-param T $element - */ - public function contains($element); - - /** - * Checks whether the collection is empty (contains no elements). - * - * @return bool TRUE if the collection is empty, FALSE otherwise. - */ - public function isEmpty(); - - /** - * Removes the element at the specified index from the collection. - * - * @param string|int $key The key/index of the element to remove. - * - * @return mixed The removed element or NULL, if the collection did not contain the element. - * - * @psalm-param TKey $key - * @psalm-return T|null - */ - public function remove($key); - - /** - * Removes the specified element from the collection, if it is found. - * - * @param mixed $element The element to remove. - * - * @return bool TRUE if this collection contained the specified element, FALSE otherwise. - * - * @psalm-param T $element - */ - public function removeElement($element); - - /** - * Checks whether the collection contains an element with the specified key/index. - * - * @param string|int $key The key/index to check for. - * - * @return bool TRUE if the collection contains an element with the specified key/index, - * FALSE otherwise. - * - * @psalm-param TKey $key - */ - public function containsKey($key); - - /** - * Gets the element at the specified key/index. - * - * @param string|int $key The key/index of the element to retrieve. - * - * @return mixed - * - * @psalm-param TKey $key - * @psalm-return T|null - */ - public function get($key); - - /** - * Gets all keys/indices of the collection. - * - * @return int[]|string[] The keys/indices of the collection, in the order of the corresponding - * elements in the collection. - * - * @psalm-return TKey[] - */ - public function getKeys(); - - /** - * Gets all values of the collection. - * - * @return array The values of all elements in the collection, in the order they - * appear in the collection. - * - * @psalm-return T[] - */ - public function getValues(); - - /** - * Sets an element in the collection at the specified key/index. - * - * @param string|int $key The key/index of the element to set. - * @param mixed $value The element to set. - * - * @return void - * - * @psalm-param TKey $key - * @psalm-param T $value - */ - public function set($key, $value); - - /** - * Gets a native PHP array representation of the collection. - * - * @return array - * - * @psalm-return array<TKey,T> - */ - public function toArray(); - - /** - * Sets the internal iterator to the first element in the collection and returns this element. - * - * @return mixed - * - * @psalm-return T|false - */ - public function first(); - - /** - * Sets the internal iterator to the last element in the collection and returns this element. - * - * @return mixed - * - * @psalm-return T|false - */ - public function last(); - - /** - * Gets the key/index of the element at the current iterator position. - * - * @return int|string|null - * - * @psalm-return TKey|null - */ - public function key(); - - /** - * Gets the element of the collection at the current iterator position. - * - * @return mixed - * - * @psalm-return T|false - */ - public function current(); - - /** - * Moves the internal iterator position to the next element and returns this element. - * - * @return mixed - * - * @psalm-return T|false - */ - public function next(); - - /** - * Tests for the existence of an element that satisfies the given predicate. - * - * @param Closure $p The predicate. - * - * @return bool TRUE if the predicate is TRUE for at least one element, FALSE otherwise. - * - * @psalm-param Closure(TKey=, T=):bool $p - */ - public function exists(Closure $p); - - /** - * Returns all the elements of this collection that satisfy the predicate p. - * The order of the elements is preserved. - * - * @param Closure $p The predicate used for filtering. - * - * @return Collection A collection with the results of the filter operation. - * - * @psalm-param Closure(T=):bool $p - * @psalm-return Collection<TKey, T> - */ - public function filter(Closure $p); - - /** - * Tests whether the given predicate p holds for all elements of this collection. - * - * @param Closure $p The predicate. - * - * @return bool TRUE, if the predicate yields TRUE for all elements, FALSE otherwise. - * - * @psalm-param Closure(TKey=, T=):bool $p - */ - public function forAll(Closure $p); - - /** - * Applies the given function to each element in the collection and returns - * a new collection with the elements returned by the function. - * - * @return Collection - * - * @psalm-template U - * @psalm-param Closure(T=):U $func - * @psalm-return Collection<TKey, U> - */ - public function map(Closure $func); - - /** - * Partitions this collection in two collections according to a predicate. - * Keys are preserved in the resulting collections. - * - * @param Closure $p The predicate on which to partition. - * - * @return Collection[] An array with two elements. The first element contains the collection - * of elements where the predicate returned TRUE, the second element - * contains the collection of elements where the predicate returned FALSE. - * - * @psalm-param Closure(TKey=, T=):bool $p - * @psalm-return array{0: Collection<TKey, T>, 1: Collection<TKey, T>} - */ - public function partition(Closure $p); - - /** - * Gets the index/key of a given element. The comparison of two elements is strict, - * that means not only the value but also the type must match. - * For objects this means reference equality. - * - * @param mixed $element The element to search for. - * - * @return int|string|bool The key/index of the element or FALSE if the element was not found. - * - * @psalm-param T $element - * @psalm-return TKey|false - */ - public function indexOf($element); - - /** - * Extracts a slice of $length elements starting at position $offset from the Collection. - * - * If $length is null it returns all elements from $offset to the end of the Collection. - * Keys have to be preserved by this method. Calling this method will only return the - * selected slice and NOT change the elements contained in the collection slice is called on. - * - * @param int $offset The offset to start from. - * @param int|null $length The maximum number of elements to return, or null for no limit. - * - * @return array - * - * @psalm-return array<TKey,T> - */ - public function slice($offset, $length = null); -} diff --git a/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Criteria.php b/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Criteria.php deleted file mode 100644 index 6ddaf5e..0000000 --- a/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Criteria.php +++ /dev/null @@ -1,222 +0,0 @@ -<?php - -namespace Doctrine\Common\Collections; - -use Doctrine\Common\Collections\Expr\CompositeExpression; -use Doctrine\Common\Collections\Expr\Expression; -use function array_map; -use function strtoupper; - -/** - * Criteria for filtering Selectable collections. - */ -class Criteria -{ - public const ASC = 'ASC'; - - public const DESC = 'DESC'; - - /** @var ExpressionBuilder|null */ - private static $expressionBuilder; - - /** @var Expression|null */ - private $expression; - - /** @var string[] */ - private $orderings = []; - - /** @var int|null */ - private $firstResult; - - /** @var int|null */ - private $maxResults; - - /** - * Creates an instance of the class. - * - * @return Criteria - */ - public static function create() - { - return new static(); - } - - /** - * Returns the expression builder. - * - * @return ExpressionBuilder - */ - public static function expr() - { - if (self::$expressionBuilder === null) { - self::$expressionBuilder = new ExpressionBuilder(); - } - - return self::$expressionBuilder; - } - - /** - * Construct a new Criteria. - * - * @param string[]|null $orderings - * @param int|null $firstResult - * @param int|null $maxResults - */ - public function __construct(?Expression $expression = null, ?array $orderings = null, $firstResult = null, $maxResults = null) - { - $this->expression = $expression; - - $this->setFirstResult($firstResult); - $this->setMaxResults($maxResults); - - if ($orderings === null) { - return; - } - - $this->orderBy($orderings); - } - - /** - * Sets the where expression to evaluate when this Criteria is searched for. - * - * @return Criteria - */ - public function where(Expression $expression) - { - $this->expression = $expression; - - return $this; - } - - /** - * Appends the where expression to evaluate when this Criteria is searched for - * using an AND with previous expression. - * - * @return Criteria - */ - public function andWhere(Expression $expression) - { - if ($this->expression === null) { - return $this->where($expression); - } - - $this->expression = new CompositeExpression( - CompositeExpression::TYPE_AND, - [$this->expression, $expression] - ); - - return $this; - } - - /** - * Appends the where expression to evaluate when this Criteria is searched for - * using an OR with previous expression. - * - * @return Criteria - */ - public function orWhere(Expression $expression) - { - if ($this->expression === null) { - return $this->where($expression); - } - - $this->expression = new CompositeExpression( - CompositeExpression::TYPE_OR, - [$this->expression, $expression] - ); - - return $this; - } - - /** - * Gets the expression attached to this Criteria. - * - * @return Expression|null - */ - public function getWhereExpression() - { - return $this->expression; - } - - /** - * Gets the current orderings of this Criteria. - * - * @return string[] - */ - public function getOrderings() - { - return $this->orderings; - } - - /** - * Sets the ordering of the result of this Criteria. - * - * Keys are field and values are the order, being either ASC or DESC. - * - * @see Criteria::ASC - * @see Criteria::DESC - * - * @param string[] $orderings - * - * @return Criteria - */ - public function orderBy(array $orderings) - { - $this->orderings = array_map( - static function (string $ordering) : string { - return strtoupper($ordering) === Criteria::ASC ? Criteria::ASC : Criteria::DESC; - }, - $orderings - ); - - return $this; - } - - /** - * Gets the current first result option of this Criteria. - * - * @return int|null - */ - public function getFirstResult() - { - return $this->firstResult; - } - - /** - * Set the number of first result that this Criteria should return. - * - * @param int|null $firstResult The value to set. - * - * @return Criteria - */ - public function setFirstResult($firstResult) - { - $this->firstResult = $firstResult === null ? null : (int) $firstResult; - - return $this; - } - - /** - * Gets maxResults. - * - * @return int|null - */ - public function getMaxResults() - { - return $this->maxResults; - } - - /** - * Sets maxResults. - * - * @param int|null $maxResults The value to set. - * - * @return Criteria - */ - public function setMaxResults($maxResults) - { - $this->maxResults = $maxResults === null ? null : (int) $maxResults; - - return $this; - } -} diff --git a/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/ClosureExpressionVisitor.php b/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/ClosureExpressionVisitor.php deleted file mode 100644 index 90ec794..0000000 --- a/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/ClosureExpressionVisitor.php +++ /dev/null @@ -1,262 +0,0 @@ -<?php - -namespace Doctrine\Common\Collections\Expr; - -use ArrayAccess; -use Closure; -use RuntimeException; -use function in_array; -use function is_array; -use function is_scalar; -use function iterator_to_array; -use function method_exists; -use function preg_match; -use function preg_replace_callback; -use function strlen; -use function strpos; -use function strtoupper; -use function substr; - -/** - * Walks an expression graph and turns it into a PHP closure. - * - * This closure can be used with {@Collection#filter()} and is used internally - * by {@ArrayCollection#select()}. - */ -class ClosureExpressionVisitor extends ExpressionVisitor -{ - /** - * Accesses the field of a given object. This field has to be public - * directly or indirectly (through an accessor get*, is*, or a magic - * method, __get, __call). - * - * @param object|array $object - * @param string $field - * - * @return mixed - */ - public static function getObjectFieldValue($object, $field) - { - if (is_array($object)) { - return $object[$field]; - } - - $accessors = ['get', 'is']; - - foreach ($accessors as $accessor) { - $accessor .= $field; - - if (method_exists($object, $accessor)) { - return $object->$accessor(); - } - } - - if (preg_match('/^is[A-Z]+/', $field) === 1 && method_exists($object, $field)) { - return $object->$field(); - } - - // __call should be triggered for get. - $accessor = $accessors[0] . $field; - - if (method_exists($object, '__call')) { - return $object->$accessor(); - } - - if ($object instanceof ArrayAccess) { - return $object[$field]; - } - - if (isset($object->$field)) { - return $object->$field; - } - - // camelcase field name to support different variable naming conventions - $ccField = preg_replace_callback('/_(.?)/', static function ($matches) { - return strtoupper($matches[1]); - }, $field); - - foreach ($accessors as $accessor) { - $accessor .= $ccField; - - if (method_exists($object, $accessor)) { - return $object->$accessor(); - } - } - - return $object->$field; - } - - /** - * Helper for sorting arrays of objects based on multiple fields + orientations. - * - * @param string $name - * @param int $orientation - * - * @return Closure - */ - public static function sortByField($name, $orientation = 1, ?Closure $next = null) - { - if (! $next) { - $next = static function () : int { - return 0; - }; - } - - return static function ($a, $b) use ($name, $next, $orientation) : int { - $aValue = ClosureExpressionVisitor::getObjectFieldValue($a, $name); - - $bValue = ClosureExpressionVisitor::getObjectFieldValue($b, $name); - - if ($aValue === $bValue) { - return $next($a, $b); - } - - return ($aValue > $bValue ? 1 : -1) * $orientation; - }; - } - - /** - * {@inheritDoc} - */ - public function walkComparison(Comparison $comparison) - { - $field = $comparison->getField(); - $value = $comparison->getValue()->getValue(); // shortcut for walkValue() - - switch ($comparison->getOperator()) { - case Comparison::EQ: - return static function ($object) use ($field, $value) : bool { - return ClosureExpressionVisitor::getObjectFieldValue($object, $field) === $value; - }; - - case Comparison::NEQ: - return static function ($object) use ($field, $value) : bool { - return ClosureExpressionVisitor::getObjectFieldValue($object, $field) !== $value; - }; - - case Comparison::LT: - return static function ($object) use ($field, $value) : bool { - return ClosureExpressionVisitor::getObjectFieldValue($object, $field) < $value; - }; - - case Comparison::LTE: - return static function ($object) use ($field, $value) : bool { - return ClosureExpressionVisitor::getObjectFieldValue($object, $field) <= $value; - }; - - case Comparison::GT: - return static function ($object) use ($field, $value) : bool { - return ClosureExpressionVisitor::getObjectFieldValue($object, $field) > $value; - }; - - case Comparison::GTE: - return static function ($object) use ($field, $value) : bool { - return ClosureExpressionVisitor::getObjectFieldValue($object, $field) >= $value; - }; - - case Comparison::IN: - return static function ($object) use ($field, $value) : bool { - $fieldValue = ClosureExpressionVisitor::getObjectFieldValue($object, $field); - - return in_array($fieldValue, $value, is_scalar($fieldValue)); - }; - - case Comparison::NIN: - return static function ($object) use ($field, $value) : bool { - $fieldValue = ClosureExpressionVisitor::getObjectFieldValue($object, $field); - - return ! in_array($fieldValue, $value, is_scalar($fieldValue)); - }; - - case Comparison::CONTAINS: - return static function ($object) use ($field, $value) { - return strpos(ClosureExpressionVisitor::getObjectFieldValue($object, $field), $value) !== false; - }; - - case Comparison::MEMBER_OF: - return static function ($object) use ($field, $value) : bool { - $fieldValues = ClosureExpressionVisitor::getObjectFieldValue($object, $field); - - if (! is_array($fieldValues)) { - $fieldValues = iterator_to_array($fieldValues); - } - - return in_array($value, $fieldValues, true); - }; - - case Comparison::STARTS_WITH: - return static function ($object) use ($field, $value) : bool { - return strpos(ClosureExpressionVisitor::getObjectFieldValue($object, $field), $value) === 0; - }; - - case Comparison::ENDS_WITH: - return static function ($object) use ($field, $value) : bool { - return $value === substr(ClosureExpressionVisitor::getObjectFieldValue($object, $field), -strlen($value)); - }; - - default: - throw new RuntimeException('Unknown comparison operator: ' . $comparison->getOperator()); - } - } - - /** - * {@inheritDoc} - */ - public function walkValue(Value $value) - { - return $value->getValue(); - } - - /** - * {@inheritDoc} - */ - public function walkCompositeExpression(CompositeExpression $expr) - { - $expressionList = []; - - foreach ($expr->getExpressionList() as $child) { - $expressionList[] = $this->dispatch($child); - } - - switch ($expr->getType()) { - case CompositeExpression::TYPE_AND: - return $this->andExpressions($expressionList); - case CompositeExpression::TYPE_OR: - return $this->orExpressions($expressionList); - default: - throw new RuntimeException('Unknown composite ' . $expr->getType()); - } - } - - /** - * @param array $expressions - */ - private function andExpressions(array $expressions) : callable - { - return static function ($object) use ($expressions) : bool { - foreach ($expressions as $expression) { - if (! $expression($object)) { - return false; - } - } - - return true; - }; - } - - /** - * @param array $expressions - */ - private function orExpressions(array $expressions) : callable - { - return static function ($object) use ($expressions) : bool { - foreach ($expressions as $expression) { - if ($expression($object)) { - return true; - } - } - - return false; - }; - } -} diff --git a/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/Comparison.php b/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/Comparison.php deleted file mode 100644 index 13e193c..0000000 --- a/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/Comparison.php +++ /dev/null @@ -1,80 +0,0 @@ -<?php - -namespace Doctrine\Common\Collections\Expr; - -/** - * Comparison of a field with a value by the given operator. - */ -class Comparison implements Expression -{ - public const EQ = '='; - public const NEQ = '<>'; - public const LT = '<'; - public const LTE = '<='; - public const GT = '>'; - public const GTE = '>='; - public const IS = '='; // no difference with EQ - public const IN = 'IN'; - public const NIN = 'NIN'; - public const CONTAINS = 'CONTAINS'; - public const MEMBER_OF = 'MEMBER_OF'; - public const STARTS_WITH = 'STARTS_WITH'; - public const ENDS_WITH = 'ENDS_WITH'; - - /** @var string */ - private $field; - - /** @var string */ - private $op; - - /** @var Value */ - private $value; - - /** - * @param string $field - * @param string $operator - * @param mixed $value - */ - public function __construct($field, $operator, $value) - { - if (! ($value instanceof Value)) { - $value = new Value($value); - } - - $this->field = $field; - $this->op = $operator; - $this->value = $value; - } - - /** - * @return string - */ - public function getField() - { - return $this->field; - } - - /** - * @return Value - */ - public function getValue() - { - return $this->value; - } - - /** - * @return string - */ - public function getOperator() - { - return $this->op; - } - - /** - * {@inheritDoc} - */ - public function visit(ExpressionVisitor $visitor) - { - return $visitor->walkComparison($this); - } -} diff --git a/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/CompositeExpression.php b/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/CompositeExpression.php deleted file mode 100644 index e1f7114..0000000 --- a/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/CompositeExpression.php +++ /dev/null @@ -1,68 +0,0 @@ -<?php - -namespace Doctrine\Common\Collections\Expr; - -use RuntimeException; - -/** - * Expression of Expressions combined by AND or OR operation. - */ -class CompositeExpression implements Expression -{ - public const TYPE_AND = 'AND'; - public const TYPE_OR = 'OR'; - - /** @var string */ - private $type; - - /** @var Expression[] */ - private $expressions = []; - - /** - * @param string $type - * @param array $expressions - * - * @throws RuntimeException - */ - public function __construct($type, array $expressions) - { - $this->type = $type; - - foreach ($expressions as $expr) { - if ($expr instanceof Value) { - throw new RuntimeException('Values are not supported expressions as children of and/or expressions.'); - } - if (! ($expr instanceof Expression)) { - throw new RuntimeException('No expression given to CompositeExpression.'); - } - - $this->expressions[] = $expr; - } - } - - /** - * Returns the list of expressions nested in this composite. - * - * @return Expression[] - */ - public function getExpressionList() - { - return $this->expressions; - } - - /** - * @return string - */ - public function getType() - { - return $this->type; - } - - /** - * {@inheritDoc} - */ - public function visit(ExpressionVisitor $visitor) - { - return $visitor->walkCompositeExpression($this); - } -} diff --git a/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/Expression.php b/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/Expression.php deleted file mode 100644 index f40d529..0000000 --- a/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/Expression.php +++ /dev/null @@ -1,14 +0,0 @@ -<?php - -namespace Doctrine\Common\Collections\Expr; - -/** - * Expression for the {@link Selectable} interface. - */ -interface Expression -{ - /** - * @return mixed - */ - public function visit(ExpressionVisitor $visitor); -} diff --git a/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/ExpressionVisitor.php b/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/ExpressionVisitor.php deleted file mode 100644 index baf1ea8..0000000 --- a/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/ExpressionVisitor.php +++ /dev/null @@ -1,55 +0,0 @@ -<?php - -namespace Doctrine\Common\Collections\Expr; - -use RuntimeException; -use function get_class; - -/** - * An Expression visitor walks a graph of expressions and turns them into a - * query for the underlying implementation. - */ -abstract class ExpressionVisitor -{ - /** - * Converts a comparison expression into the target query language output. - * - * @return mixed - */ - abstract public function walkComparison(Comparison $comparison); - - /** - * Converts a value expression into the target query language part. - * - * @return mixed - */ - abstract public function walkValue(Value $value); - - /** - * Converts a composite expression into the target query language output. - * - * @return mixed - */ - abstract public function walkCompositeExpression(CompositeExpression $expr); - - /** - * Dispatches walking an expression to the appropriate handler. - * - * @return mixed - * - * @throws RuntimeException - */ - public function dispatch(Expression $expr) - { - switch (true) { - case $expr instanceof Comparison: - return $this->walkComparison($expr); - case $expr instanceof Value: - return $this->walkValue($expr); - case $expr instanceof CompositeExpression: - return $this->walkCompositeExpression($expr); - default: - throw new RuntimeException('Unknown Expression ' . get_class($expr)); - } - } -} diff --git a/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/Value.php b/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/Value.php deleted file mode 100644 index 0830286..0000000 --- a/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/Value.php +++ /dev/null @@ -1,33 +0,0 @@ -<?php - -namespace Doctrine\Common\Collections\Expr; - -class Value implements Expression -{ - /** @var mixed */ - private $value; - - /** - * @param mixed $value - */ - public function __construct($value) - { - $this->value = $value; - } - - /** - * @return mixed - */ - public function getValue() - { - return $this->value; - } - - /** - * {@inheritDoc} - */ - public function visit(ExpressionVisitor $visitor) - { - return $visitor->walkValue($this); - } -} diff --git a/vendor/doctrine/collections/lib/Doctrine/Common/Collections/ExpressionBuilder.php b/vendor/doctrine/collections/lib/Doctrine/Common/Collections/ExpressionBuilder.php deleted file mode 100644 index 4c0f5fd..0000000 --- a/vendor/doctrine/collections/lib/Doctrine/Common/Collections/ExpressionBuilder.php +++ /dev/null @@ -1,180 +0,0 @@ -<?php - -namespace Doctrine\Common\Collections; - -use Doctrine\Common\Collections\Expr\Comparison; -use Doctrine\Common\Collections\Expr\CompositeExpression; -use Doctrine\Common\Collections\Expr\Value; -use function func_get_args; - -/** - * Builder for Expressions in the {@link Selectable} interface. - * - * Important Notice for interoperable code: You have to use scalar - * values only for comparisons, otherwise the behavior of the comparison - * may be different between implementations (Array vs ORM vs ODM). - */ -class ExpressionBuilder -{ - /** - * @param mixed ...$x - * - * @return CompositeExpression - */ - public function andX($x = null) - { - return new CompositeExpression(CompositeExpression::TYPE_AND, func_get_args()); - } - - /** - * @param mixed ...$x - * - * @return CompositeExpression - */ - public function orX($x = null) - { - return new CompositeExpression(CompositeExpression::TYPE_OR, func_get_args()); - } - - /** - * @param string $field - * @param mixed $value - * - * @return Comparison - */ - public function eq($field, $value) - { - return new Comparison($field, Comparison::EQ, new Value($value)); - } - - /** - * @param string $field - * @param mixed $value - * - * @return Comparison - */ - public function gt($field, $value) - { - return new Comparison($field, Comparison::GT, new Value($value)); - } - - /** - * @param string $field - * @param mixed $value - * - * @return Comparison - */ - public function lt($field, $value) - { - return new Comparison($field, Comparison::LT, new Value($value)); - } - - /** - * @param string $field - * @param mixed $value - * - * @return Comparison - */ - public function gte($field, $value) - { - return new Comparison($field, Comparison::GTE, new Value($value)); - } - - /** - * @param string $field - * @param mixed $value - * - * @return Comparison - */ - public function lte($field, $value) - { - return new Comparison($field, Comparison::LTE, new Value($value)); - } - - /** - * @param string $field - * @param mixed $value - * - * @return Comparison - */ - public function neq($field, $value) - { - return new Comparison($field, Comparison::NEQ, new Value($value)); - } - - /** - * @param string $field - * - * @return Comparison - */ - public function isNull($field) - { - return new Comparison($field, Comparison::EQ, new Value(null)); - } - - /** - * @param string $field - * @param array $values - * - * @return Comparison - */ - public function in($field, array $values) - { - return new Comparison($field, Comparison::IN, new Value($values)); - } - - /** - * @param string $field - * @param array $values - * - * @return Comparison - */ - public function notIn($field, array $values) - { - return new Comparison($field, Comparison::NIN, new Value($values)); - } - - /** - * @param string $field - * @param mixed $value - * - * @return Comparison - */ - public function contains($field, $value) - { - return new Comparison($field, Comparison::CONTAINS, new Value($value)); - } - - /** - * @param string $field - * @param mixed $value - * - * @return Comparison - */ - public function memberOf($field, $value) - { - return new Comparison($field, Comparison::MEMBER_OF, new Value($value)); - } - - /** - * @param string $field - * @param mixed $value - * - * @return Comparison - */ - public function startsWith($field, $value) - { - return new Comparison($field, Comparison::STARTS_WITH, new Value($value)); - } - - /** - * @param string $field - * @param mixed $value - * - * @return Comparison - */ - public function endsWith($field, $value) - { - return new Comparison($field, Comparison::ENDS_WITH, new Value($value)); - } -} diff --git a/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Selectable.php b/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Selectable.php deleted file mode 100644 index 0a03894..0000000 --- a/vendor/doctrine/collections/lib/Doctrine/Common/Collections/Selectable.php +++ /dev/null @@ -1,32 +0,0 @@ -<?php - -namespace Doctrine\Common\Collections; - -/** - * Interface for collections that allow efficient filtering with an expression API. - * - * Goal of this interface is a backend independent method to fetch elements - * from a collections. {@link Expression} is crafted in a way that you can - * implement queries from both in-memory and database-backed collections. - * - * For database backed collections this allows very efficient access by - * utilizing the query APIs, for example SQL in the ORM. Applications using - * this API can implement efficient database access without having to ask the - * EntityManager or Repositories. - * - * @phpstan-template TKey - * @psalm-template TKey as array-key - * @psalm-template T - */ -interface Selectable -{ - /** - * Selects all elements from a selectable that match the expression and - * returns a new collection containing these elements. - * - * @return Collection - * - * @psalm-return Collection<TKey,T> - */ - public function matching(Criteria $criteria); -} |