vendor/easycorp/easyadmin-bundle/src/Collection/FilterCollection.php line 73

Open in your IDE?
  1. <?php
  2. namespace EasyCorp\Bundle\EasyAdminBundle\Collection;
  3. use EasyCorp\Bundle\EasyAdminBundle\Contracts\Collection\CollectionInterface;
  4. use EasyCorp\Bundle\EasyAdminBundle\Dto\FilterDto;
  5. /**
  6.  * @author Javier Eguiluz <javier.eguiluz@gmail.com>
  7.  */
  8. final class FilterCollection implements CollectionInterface
  9. {
  10.     /** @var FilterDto[] */
  11.     private $filters;
  12.     /**
  13.      * @param FilterDto[] $filters
  14.      */
  15.     private function __construct(array $filters)
  16.     {
  17.         $this->filters $filters;
  18.     }
  19.     /**
  20.      * @param FilterDto[] $filters
  21.      */
  22.     public static function new(array $filters = []): self
  23.     {
  24.         return new self($filters);
  25.     }
  26.     /**
  27.      * @return FilterDto[]
  28.      */
  29.     public function all(): array
  30.     {
  31.         return $this->filters;
  32.     }
  33.     public function get(string $filterName): ?FilterDto
  34.     {
  35.         return $this->filters[$filterName] ?? null;
  36.     }
  37.     public function offsetExists($offset): bool
  38.     {
  39.         return \array_key_exists($offset$this->filters);
  40.     }
  41.     public function offsetGet($offset)
  42.     {
  43.         return $this->filters[$offset];
  44.     }
  45.     public function offsetSet($offset$value): void
  46.     {
  47.         $this->filters[$offset] = $value;
  48.     }
  49.     public function offsetUnset($offset): void
  50.     {
  51.         unset($this->filters[$offset]);
  52.     }
  53.     public function count(): int
  54.     {
  55.         return \count($this->filters);
  56.     }
  57.     /**
  58.      * @return \ArrayIterator|\Traversable|FilterDto[]
  59.      */
  60.     public function getIterator()
  61.     {
  62.         return new \ArrayIterator($this->filters);
  63.     }
  64. }