com.google.appengine.api.datastore

## Class FetchOptions

- java.lang.Object
- - com.google.appengine.api.datastore.FetchOptions

-     public final class FetchOptions
      extends java.lang.Object

  Describes the limit, offset, and chunk size to be applied when executing a `PreparedQuery`.

  `limit` is the maximum number of results the query will return.

  `offset` is the number of results to skip before returning any results. Results that are skipped due to offset do not count against `limit`.
  Note: Using `offset` still retrieves skipped entities internally. This affects the latency of the query, and your application is billed for the operations required to retrieve them. Using cursors lets you avoid these costs.

  `startCursor` and `endCursor` are previously generated cursors that point to locations in a result set. If specified queries will start and end at these locations.

  `prefetchSize` is the number of results retrieved on the first call to the datastore.

  `chunkSize` determines the internal chunking strategy of the `Iterator` returned by `PreparedQuery.asIterator(FetchOptions)` and the `Iterable` returned by `PreparedQuery.asIterable(FetchOptions)`.

  Note that unlike `limit`, `offset` and `cursor`, `prefetchSize` and `chunkSize` have no impact on the result of the `PreparedQuery`, but rather only the performance of the `PreparedQuery`.

  Notes on usage:
  The recommended way to instantiate a `FetchOptions` object is to import `FetchOptions` and invoke a static creation method followed by an instance mutator (if needed):

       import com.google.appengine.api.datastore.FetchOptions;

       Cursor cursor = ...

       ...

       // limit 10
       datastoreService.prepare(query).asList(FetchOptions.Builder.withLimit(10));

       // limit 10, start cursor
       datastoreService.prepare(query).asList(FetchOptions.Builder.withLimit(10).startCursor(cursor));

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `FetchOptions.Builder` Contains static creation methods for `FetchOptions`.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `DEFAULT_CHUNK_SIZE` Deprecated. Instead of using DEFAULT_CHUNK_SIZE, do not specify a chunk size.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `FetchOptions` | `chunkSize(int chunkSize)` Sets the chunk size.
    `FetchOptions` | `cursor(Cursor cursor)` Deprecated. use `startCursor` instead.
    `FetchOptions` | `endCursor(Cursor endCursor)` Sets the cursor at which to end the query.
    `boolean` | `equals(java.lang.Object obj)`
    `java.lang.Integer` | `getChunkSize()`
    `Cursor` | `getCursor()` Deprecated. use `getStartCursor()` instead
    `Cursor` | `getEndCursor()`
    `java.lang.Integer` | `getLimit()`
    `java.lang.Integer` | `getOffset()`
    `java.lang.Integer` | `getPrefetchSize()`
    `Cursor` | `getStartCursor()`
    `int` | `hashCode()`
    `FetchOptions` | `limit(int limit)` Sets the limit.
    `FetchOptions` | `offset(int offset)` Sets the offset.
    `FetchOptions` | `prefetchSize(int prefetchSize)` Sets the number of entities to prefetch.
    `FetchOptions` | `startCursor(Cursor startCursor)` Sets the cursor at which to start the query.
    `java.lang.String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### DEFAULT_CHUNK_SIZE

          @Deprecated
          public static final int DEFAULT_CHUNK_SIZE

      Deprecated. Instead of using DEFAULT_CHUNK_SIZE, do not specify a chunk size.
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### limit

          public FetchOptions limit(int limit)

      Sets the limit. Please read the class javadoc for an explanation of how limit is used.
      Parameters:
        `limit` - The limit to set. Must be non-negative.
      Returns:
        `this` (for chaining)

    - #### offset

          public FetchOptions offset(int offset)

      Sets the offset. Please read the class javadoc for an explanation of how offset is used.
      Parameters:
        `offset` - The offset to set. Must be 0 or greater.
      Returns:
        `this` (for chaining)

    - #### chunkSize

          public FetchOptions chunkSize(int chunkSize)

      Sets the chunk size. Please read the class javadoc for an explanation of how chunk size is used.
      Parameters:
        `chunkSize` - The chunk size to set. Must be greater than 0.
      Returns:
        `this` (for chaining)

    - #### prefetchSize

          public FetchOptions prefetchSize(int prefetchSize)

      Sets the number of entities to prefetch.
      Parameters:
        `prefetchSize` - The prefetch size to set. Must be >= 0.
      Returns:
        `this` (for chaining)

    - #### cursor

          @Deprecated
          public FetchOptions cursor(Cursor cursor)

      Deprecated. use `startCursor` instead.
      Sets the cursor to start the query from.
      Parameters:
        `cursor` - the cursor to set
      Returns:
        `this` (for chaining)

    - #### startCursor

          public FetchOptions startCursor(Cursor startCursor)

      Sets the cursor at which to start the query.
      Parameters:
        `startCursor` - the cursor to set
      Returns:
        `this` (for chaining)

    - #### endCursor

          public FetchOptions endCursor(Cursor endCursor)

      Sets the cursor at which to end the query.
      Parameters:
        `endCursor` - the cursor to set
      Returns:
        `this` (for chaining)

    - #### getLimit

          public java.lang.Integer getLimit()

      Returns:
        The limit, or `null` if no limit was provided.

    - #### getOffset

          public java.lang.Integer getOffset()

      Returns:
        The offset, or `null` if no offset was provided.

    - #### getChunkSize

          public java.lang.Integer getChunkSize()

      Returns:
        The chunk size, or `null` if no chunk size was provided.

    - #### getPrefetchSize

          public java.lang.Integer getPrefetchSize()

      Returns:
        The prefetch size, or `null` if no prefetch size was provided.

    - #### getCursor

          @Deprecated
          public Cursor getCursor()

      Deprecated. use `getStartCursor()` instead
      Returns:
        The start cursor, or `null` if no cursor was provided.

    - #### getStartCursor

          public Cursor getStartCursor()

      Returns:
        The start cursor, or `null` if no start cursor was provided.

    - #### getEndCursor

          public Cursor getEndCursor()

      Returns:
        The end cursor, or `null` if no end cursor was provided.

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `java.lang.Object`

    - #### equals

          public boolean equals(java.lang.Object obj)

      Overrides:
        `equals` in class `java.lang.Object`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`