/** * @param Query $query * @return string * @SuppressWarnings(PHPMD.NPathComplexity) */ protected function combineQueryString(Query $query) { $selectString = $query->getQuery(); $fromString = ''; if ($query->getFrom()) { $fromString .= ' from ' . implode(', ', $query->getFrom()); } $whereParts = array(); foreach ($query->getOptions() as $whereOptions) { if (is_array($whereOptions['fieldValue'])) { $whereOptions['fieldValue'] = '(' . implode(', ', $whereOptions['fieldValue']) . ')'; } $whereParts[] = sprintf('%s((%s)%s %s %s)', $whereOptions['type'], $whereOptions['fieldType'], $whereOptions['fieldName'], $whereOptions['condition'], $whereOptions['fieldValue']); } $whereString = ''; if ($whereParts) { $whereString .= ' where ' . implode(' ', $whereParts); } $orderByString = ''; if ($query->getOrderBy()) { $orderByString .= ' ' . $query->getOrderBy(); } if ($query->getOrderDirection()) { $orderByString .= ' ' . $query->getOrderDirection(); } if ($orderByString) { $orderByString = ' order by' . $orderByString; } $limitString = ''; if ($query->getMaxResults() && $query->getMaxResults() != Query::INFINITY) { $limitString = ' limit ' . $query->getMaxResults(); } $offsetString = ''; if ($query->getFirstResult()) { $offsetString .= ' offset ' . $query->getFirstResult(); } return $selectString . $fromString . $whereString . $orderByString . $limitString . $offsetString; }
/** * {@inheritdoc} */ public function getFirstResult() { return $this->query->getFirstResult(); }