summaryrefslogtreecommitdiffstats
path: root/library/Icingadb/Command
diff options
context:
space:
mode:
Diffstat (limited to 'library/Icingadb/Command')
-rw-r--r--library/Icingadb/Command/Object/ObjectsCommand.php13
-rw-r--r--library/Icingadb/Command/Transport/CommandTransport.php4
2 files changed, 13 insertions, 4 deletions
diff --git a/library/Icingadb/Command/Object/ObjectsCommand.php b/library/Icingadb/Command/Object/ObjectsCommand.php
index 3de6c83..f1a50d7 100644
--- a/library/Icingadb/Command/Object/ObjectsCommand.php
+++ b/library/Icingadb/Command/Object/ObjectsCommand.php
@@ -5,8 +5,11 @@
namespace Icinga\Module\Icingadb\Command\Object;
use ArrayIterator;
+use Generator;
use Icinga\Module\Icingadb\Command\IcingaCommand;
+use InvalidArgumentException;
use ipl\Orm\Model;
+use LogicException;
use Traversable;
/**
@@ -24,12 +27,18 @@ abstract class ObjectsCommand extends IcingaCommand
/**
* Set the involved objects
*
- * @param Traversable<Model> $objects
+ * @param Traversable<Model> $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;
@@ -57,7 +66,7 @@ abstract class ObjectsCommand extends IcingaCommand
public function getObjects(): Traversable
{
if ($this->objects === null) {
- throw new \LogicException(
+ throw new LogicException(
'You are accessing an unset property. Please make sure to set it beforehand.'
);
}
diff --git a/library/Icingadb/Command/Transport/CommandTransport.php b/library/Icingadb/Command/Transport/CommandTransport.php
index ea125bc..952cb14 100644
--- a/library/Icingadb/Command/Transport/CommandTransport.php
+++ b/library/Icingadb/Command/Transport/CommandTransport.php
@@ -50,7 +50,7 @@ class CommandTransport implements CommandTransportInterface
/**
* Create a transport from config
*
- * @param ConfigObject $config
+ * @param ConfigObject<string> $config
*
* @return ApiCommandTransport
*
@@ -59,7 +59,7 @@ class CommandTransport implements CommandTransportInterface
public static function createTransport(ConfigObject $config): ApiCommandTransport
{
$config = clone $config;
- switch (strtolower($config->transport)) {
+ switch (strtolower($config->transport ?? '')) {
case ApiCommandTransport::TRANSPORT:
$transport = new ApiCommandTransport();
break;