com.google.appengine.api.datastore
Class KeyRange

java.lang.Object
  extended by com.google.appengine.api.datastore.KeyRange
All Implemented Interfaces:
java.io.Serializable, java.lang.Iterable<Key>

public final class KeyRange
extends java.lang.Object
implements java.lang.Iterable<Key>, java.io.Serializable

Represents a range of unique datastore identifiers from getStart().getId() to getEnd().getId() inclusive. If an instance of this class is the result of a call to DatastoreService.allocateIds(), the Keys returned by this instance have been consumed in the datastore's id-space and are guaranteed never to be reused.
This class can be used to construct Entities with Keys that have specific id values without fear of the datastore creating new records with those same ids at a later date. This can be helpful as part of a data migration or large bulk upload where you may need to preserve existing ids and relationships between entities.
This class is threadsafe but the Iterators returned by iterator() are not.

See Also:
Serialized Form

Constructor Summary
KeyRange(Key parent, java.lang.String kind, long start, long end)
           
 
Method Summary
 boolean equals(java.lang.Object obj)
           
 Key getEnd()
           
 long getSize()
           
 Key getStart()
           
 int hashCode()
           
 java.util.Iterator<Key> iterator()
           
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

KeyRange

public KeyRange(Key parent,
                java.lang.String kind,
                long start,
                long end)
Method Detail

getStart

public Key getStart()
Returns:
The first Key in the range.

getEnd

public Key getEnd()
Returns:
The last Key in the range.

getSize

public long getSize()
Returns:
The size of the range.

iterator

public java.util.Iterator<Key> iterator()
Specified by:
iterator in interface java.lang.Iterable<Key>

equals

public boolean equals(java.lang.Object obj)
Overrides:
equals in class java.lang.Object

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object