/**
  * Returns a QueryBuilder of nodes that must be moved to the right
  *
  * @param \Doctrine\ORM\QueryBuilder $siblingQueryBuilder
  * @param \DoctrineExtensions\Hierarchical\MaterializedPath\MaterializedPathNodeInfo $node
  * @return \Doctrine\ORM\QueryBuilder
  */
 public function getSortedPosQueryBuilder(\Doctrine\ORM\QueryBuilder $siblingQueryBuilder, MaterializedPathNodeInfo $node)
 {
     $entity = $node->unwrap();
     $qb = $siblingQueryBuilder;
     $expr = $qb->expr();
     $fields = $ands = array();
     foreach ($entity->getNodeOrderBy() as $field) {
         $value = $this->classMetadata->reflFields[$field]->getValue($entity);
         $andX = $qb->expr();
         foreach ($fields as $f => $v) {
             $andX->add($expr->eq('e.' . $f, $v));
         }
         $andX->add($expr->gt('e.' . $field, $value));
         $ands[] = $andX;
         $fields[$field] = $value;
     }
     if (!empty($ands)) {
         $orX = $qb->expr();
         foreach ($ands as $andX) {
             $orX->add($andX);
         }
         $qb->andWhere($orX);
     }
     return $qb;
 }