summaryrefslogtreecommitdiff
path: root/vendor/doctrine/collections/lib
diff options
context:
space:
mode:
authorDevian <devianleong@gmail.com>2021-04-22 17:11:12 +0800
committerDevian <devianleong@gmail.com>2021-04-22 17:11:12 +0800
commitbf68fa166afb95d682007e7671c2b0692227bec5 (patch)
tree26091a1e5a821905b8bdba73fd1ddb95e12f887e /vendor/doctrine/collections/lib
parent745cf2431a71d0e6c5f08f8605839279b2f7496e (diff)
Initial
Diffstat (limited to 'vendor/doctrine/collections/lib')
-rw-r--r--vendor/doctrine/collections/lib/Doctrine/Common/Collections/AbstractLazyCollection.php369
-rw-r--r--vendor/doctrine/collections/lib/Doctrine/Common/Collections/ArrayCollection.php441
-rw-r--r--vendor/doctrine/collections/lib/Doctrine/Common/Collections/Collection.php297
-rw-r--r--vendor/doctrine/collections/lib/Doctrine/Common/Collections/Criteria.php222
-rw-r--r--vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/ClosureExpressionVisitor.php262
-rw-r--r--vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/Comparison.php80
-rw-r--r--vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/CompositeExpression.php68
-rw-r--r--vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/Expression.php14
-rw-r--r--vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/ExpressionVisitor.php55
-rw-r--r--vendor/doctrine/collections/lib/Doctrine/Common/Collections/Expr/Value.php33
-rw-r--r--vendor/doctrine/collections/lib/Doctrine/Common/Collections/ExpressionBuilder.php180
-rw-r--r--vendor/doctrine/collections/lib/Doctrine/Common/Collections/Selectable.php32
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);
-}