/** * @param QOM\OperandInterface $operand */ private function walkOperand(QOM\OperandInterface $operand) { if ($operand instanceof QOM\NodeNameInterface) { return ZendSearchAdapter::IDX_NODENAME; } if ($operand instanceof QOM\NodeLocalNameInterface) { return ZendSearchAdapter::IDX_NODELOCALNAME; } if ($operand instanceof QOM\LiteralInterface) { return $this->escape($operand->getLiteralValue()); } if ($operand instanceof QOM\PropertyValueInterface) { return $this->escape($operand->getPropertyName()); } if ($operand instanceof QOM\LowerCaseInterface) { return $this->walkOperand($operand->getOperand()); } if ($operand instanceof QOM\UpperCaseInterface) { return $this->walkOperand($operand->getOperand()); } throw new InvalidQueryException("Dynamic operand " . get_class($operand) . " not yet supported."); }