code: public static <S> Cursor<S> apply(Cursor<S> source, Query.Controller controller) {
          return controller == null ? source : new ControllerCursor<S>(source, controller);
      }
docs: Returns a ControllerCursor depending on whether a controller instance is
  passed in or not.
  
  @param controller optional controller which can abort query operation
  @throws IllegalArgumentException if source is null