# FetchOptions
Date: 2012-02-24

## 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
`static class` `FetchOptions.Builder` Contains static creation methods for `FetchOptions`.

Field Summary
`static int` `DEFAULT_CHUNK_SIZE` Deprecated. Instead of using DEFAULT_CHUNK_SIZE, do not specify a chunk size.

Method Summary
`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`