package io.vertx.ext.mongo;

import io.vertx.codegen.annotations.DataObject;
import io.vertx.core.json.JsonObject;

Options used to configure find operations.
Author:Nick Scavelli
/** * Options used to configure find operations. * * @author <a href="mailto:nscavell@redhat.com">Nick Scavelli</a> */
@DataObject(generateConverter = true) public class FindOptions {
The default value of limit = -1, signifying no limit
/** * The default value of limit = -1, signifying no limit */
public static final int DEFAULT_LIMIT = -1;
The default value of skip = 0
/** * The default value of skip = 0 */
public static final int DEFAULT_SKIP = 0;
The default value of batchSize = 10.
/** * The default value of batchSize = 10. */
public static final int DEFAULT_BATCH_SIZE = 20; private JsonObject fields; private JsonObject sort; private int limit; private int skip; private int batchSize;
Default constructor
/** * Default constructor */
public FindOptions() { this.fields = new JsonObject(); this.sort = new JsonObject(); this.limit = DEFAULT_LIMIT; this.skip = DEFAULT_SKIP; this.batchSize = DEFAULT_BATCH_SIZE; }
Copy constructor
Params:
  • options – the one to copy
/** * Copy constructor * * @param options the one to copy */
public FindOptions(FindOptions options) { this.fields = options.fields != null ? options.fields.copy() : new JsonObject(); this.sort = options.sort != null ? options.sort.copy() : new JsonObject(); this.limit = options.limit; this.skip = options.skip; this.batchSize = options.batchSize; }
Constructor from JSON
Params:
  • options – the JSON
/** * Constructor from JSON * * @param options the JSON */
public FindOptions(JsonObject options) { this(); FindOptionsConverter.fromJson(options, this); }
Convert to JSON
Returns: the JSON
/** * Convert to JSON * * @return the JSON */
public JsonObject toJson() { JsonObject json = new JsonObject(); FindOptionsConverter.toJson(this, json); return json; }
Get the fields
Returns:the fields
/** * Get the fields * * @return the fields */
public JsonObject getFields() { return fields; }
Set the fields
Params:
  • fields – the fields
Returns:reference to this, for fluency
/** * Set the fields * * @param fields the fields * @return reference to this, for fluency */
public FindOptions setFields(JsonObject fields) { this.fields = fields; return this; }
Get the sort document
Returns: the sort document
/** * Get the sort document * * @return the sort document */
public JsonObject getSort() { return sort; }
Set the sort document
Params:
  • sort – the sort document
Returns:reference to this, for fluency
/** * Set the sort document * * @param sort the sort document * @return reference to this, for fluency */
public FindOptions setSort(JsonObject sort) { this.sort = sort; return this; }
Get the limit - this determines the max number of rows to return
Returns: the limit
/** * Get the limit - this determines the max number of rows to return * @return the limit */
public int getLimit() { return limit; }
Set the limit
Params:
  • limit – the limit
Returns:reference to this, for fluency
/** * Set the limit * * @param limit the limit * @return reference to this, for fluency */
public FindOptions setLimit(int limit) { this.limit = limit; return this; }
Get the skip. This determines how many results to skip before returning results.
Returns: the skip
/** * Get the skip. This determines how many results to skip before returning results. * * @return the skip */
public int getSkip() { return skip; }
Set the skip
Params:
  • skip – the skip
Returns:reference to this, for fluency
/** * Set the skip * * @param skip the skip * @return reference to this, for fluency */
public FindOptions setSkip(int skip) { this.skip = skip; return this; }
Returns:the batch size for methods loading found data in batches
/** * @return the batch size for methods loading found data in batches */
public int getBatchSize() { return batchSize; }
Set the batch size for methods loading found data in batches.
Params:
  • batchSize – the number of documents in a batch
Returns:reference to this, for fluency
/** * Set the batch size for methods loading found data in batches. * * @param batchSize the number of documents in a batch * @return reference to this, for fluency */
public FindOptions setBatchSize(int batchSize) { this.batchSize = batchSize; return this; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; FindOptions that = (FindOptions) o; if (limit != that.limit) return false; if (skip != that.skip) return false; if (batchSize != that.batchSize) return false; if (fields != null ? !fields.equals(that.fields) : that.fields != null) return false; return sort != null ? sort.equals(that.sort) : that.sort == null; } @Override public int hashCode() { int result = fields != null ? fields.hashCode() : 0; result = 31 * result + (sort != null ? sort.hashCode() : 0); result = 31 * result + limit; result = 31 * result + skip; result = 31 * result + batchSize; return result; } }