isProhibited(false) !== $this->isProhibited(false)) { Log::debug('Return false because prohibited status is different'); return false; } if ($compare instanceof NodeGroup && $this instanceof NodeGroup) { if (count($compare->getNodes()) !== count($this->getNodes())) { Log::debug(sprintf('Return false because node count is different. Original is %d, compare is %d', count($this->getNodes()), count($compare->getNodes()))); return false; } /** * @var int $index * @var Node $node */ foreach ($this->getNodes() as $index => $node) { if (false === $node->equals($compare->getNodes()[$index])) { Log::debug('Return false because nodes are different!'); return false; } } return true; } return true; } /** * Returns the prohibited status of the node, optionally inverted based on flipFlag * * Flipping is used when a node is inside a NodeGroup that has a prohibited status itself, causing inversion of the * query parts inside * * @param bool $flipFlag When true, inverts the prohibited status * * @return bool The (potentially inverted) prohibited status */ public function isProhibited(bool $flipFlag): bool { if ($flipFlag) { // Log::debug(sprintf('This %s is (flipped) now prohibited: %s',get_class($this), var_export(!$this->prohibited, true))); return !$this->prohibited; } // Log::debug(sprintf('This %s is (not flipped) now prohibited: %s',get_class($this), var_export($this->prohibited, true))); return $this->prohibited; } }