public function getConditions()
    {
        if ($this->conditions_as_string === false) {
            switch (count($this->conditions)) {
                case 0:
                    $this->conditions_as_string = '';
                    break;
                case 1:
                    $this->conditions_as_string = $this->conditions[0];
                    break;
                default:
                    $this->conditions_as_string = implode(' AND ', array_map(function ($condition) {
                        return "($condition)";
                    }, $this->conditions));
            }
        }

        return $this->conditions_as_string;
    }