*/ protected $objects; /** * Set the involved objects * * @param Traversable $objects Except generators * * @return $this * * @throws InvalidArgumentException If a generator is passed */ public function setObjects(Traversable $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 Traversable */ public function getObjects(): Traversable { if ($this->objects === null) { throw new LogicException( 'You are accessing an unset property. Please make sure to set it beforehand.' ); } return $this->objects; } }