*/ protected $objects; /** * How many objects to process at once * * @var ?int */ protected ?int $chunkSize = null; /** * Set the involved objects * * @param Iterator $objects Except generators * * @return $this * * @throws InvalidArgumentException If a generator is passed */ public function setObjects(Iterator $objects): self { if ($objects instanceof Generator) { throw new InvalidArgumentException('Generators are not supported'); } $this->objects = $objects; return $this; } /** * Set the involved object * * @param Model $object * * @return $this * * @deprecated Use setObjects() instead */ public function setObject(Model $object): self { return $this->setObjects(new ArrayIterator([$object])); } /** * Get the involved objects * * @return Iterator */ public function getObjects(): Iterator { if ($this->objects === null) { throw new LogicException( 'You are accessing an unset property. Please make sure to set it beforehand.' ); } return $this->objects; } /** * Set how many objects to process at once * * @param ?int $chunkSize * * @return $this */ public function setChunkSize(?int $chunkSize): static { $this->chunkSize = $chunkSize; return $this; } /** * Get how many objects to process at once * * @return ?int */ public function getChunkSize(): ?int { return $this->chunkSize; } }