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`.

  `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 statically import `FetchOptions.Builder`.* and invoke a static creation method followed by an instance mutator (if needed):

       import static com.google.appengine.api.datastore.FetchOptions.Builder.*;

       ...

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

       // limit 10, offset 5
       datastoreService.prepare(query).asList(withLimit(10).offset(5));

- - ### 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

    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`