@Override
 protected NodeBooleanQuery getTopLevelQuery(final NodeQuery query) {
   NodeBooleanQuery q = new NodeBooleanQuery();
   // set level and node constraints
   q.setLevelConstraint(query.getLevelConstraint());
   q.setNodeConstraint(query.getNodeConstraint()[0], query.getNodeConstraint()[1]);
   // set ancestor
   q.setAncestorPointer(query.ancestor);
   return q;
 }