public function makeAbstractQueryOperator(AbstractQueryNode $queryNode)
    {
        switch (true) {
            case ($queryNode instanceof AbstractScalarOperatorNode):
                return $this->makeScalarOperator($queryNode);
            case ($queryNode instanceof AbstractLogicOperatorNode):
                return $this->makeLogicOperator($queryNode);
            case ($queryNode instanceof AbstractArrayOperatorNode):
                return $this->makeArrayOperator($queryNode);
            case ($queryNode instanceof BinaryOperatorNodeAbstract):
                return $this->makeBinaryOperator($queryNode);
            default:
                throw new DataStoreException('The Node type not supported: ' . $queryNode->getNodeName());
        }
    }