/**
  * Evaluates inner joins
  *
  * @param QueryBuilder        $queryBuilder Query builder
  * @param AnnotationPaginator $annotation   Annotation
  *
  * @return PaginatorEvaluatorInterface self Object
  */
 public function evaluate(QueryBuilder $queryBuilder, AnnotationPaginator $annotation)
 {
     $iteration = 0;
     if (is_array($annotation->getWheres())) {
         foreach ($annotation->getWheres() as $where) {
             $annotationWhereParameter = $where[3];
             $whereParameter = $this->clearWildcards($annotationWhereParameter);
             $whereValue = $this->requestParameterProvider->getParameterValue($whereParameter);
             $whereValue = $this->addWildcards($annotationWhereParameter, $whereValue);
             $optionalFilter = (bool) isset($where[4]) ? $where[4] : false;
             if ($optionalFilter && $whereParameter === $whereValue) {
                 continue;
             }
             $queryBuilder->andWhere(trim($where[0]) . '.' . trim($where[1]) . " " . $where[2] . " ?0" . $iteration)->setParameter("0" . $iteration, $whereValue);
             $iteration++;
         }
     }
     return $this;
 }