public class KeyFactory
extends java.lang.Object
Key
objects, both in the root entity group (no
parent) and as the child of a given parent. Keys can also be created indirectly by putting named
Entities into the datastore, which will allocate a new key. See Entity.Entity(String,
String)
for details.
This class also has methods for encoding and decoding Key
objects to and from strings.
Clients should not make any assumptions about the encoding format, except that it is a websafe
string that does not need to be quoted when used in HTML or in URLs.
Entity
Modifier and Type | Class and Description |
---|---|
static class |
KeyFactory.Builder
Helper class that aids in the construction of
Keys with ancestors. |
Modifier and Type | Method and Description |
---|---|
static Key |
createKey(Key parent,
java.lang.String kind,
long id)
Creates a new
Key with the provided parent from its kind and ID. |
static Key |
createKey(Key parent,
java.lang.String kind,
java.lang.String name)
Creates a new
Key with the provided parent from its kind and name. |
static Key |
createKey(java.lang.String kind,
long id)
Creates a new
Key having no parent from its kind and ID. |
static Key |
createKey(java.lang.String kind,
java.lang.String name)
Creates a new
Key having no parent from its kind and name. |
static java.lang.String |
createKeyString(Key parent,
java.lang.String kind,
long id)
Shorthand for invoking
keyToString(Key) on the result of createKey(Key,
String, long) |
static java.lang.String |
createKeyString(Key parent,
java.lang.String kind,
java.lang.String name)
Shorthand for invoking
keyToString(Key) on the result of createKey(Key,
String, String) |
static java.lang.String |
createKeyString(java.lang.String kind,
long id)
Shorthand for invoking
keyToString(Key) on the result of createKey(String,
long) |
static java.lang.String |
createKeyString(java.lang.String kind,
java.lang.String name)
Shorthand for invoking
keyToString(Key) on the result of createKey(String,
String) |
static java.lang.String |
keyToString(Key key)
Converts a
Key into a websafe string. |
static Key |
stringToKey(java.lang.String encoded)
Converts a
String -representation of a Key into the Key instance it
represents. |
public static Key createKey(java.lang.String kind, long id)
Key
having no parent from its kind and ID.kind
- the kind of the key to createid
- the numeric identifier of the key in kind
, unique across all root entities of
this kind, must not be zeropublic static Key createKey(Key parent, java.lang.String kind, long id)
Key
with the provided parent from its kind and ID.parent
- the parent of the key to create, can be null
kind
- the kind of the key to createid
- the numeric identifier of the key in kind
, unique across all entities of this
kind with the same parent, must not be zeropublic static Key createKey(java.lang.String kind, java.lang.String name)
Key
having no parent from its kind and name.kind
- the kind of the key to createname
- the name of the key in kind
, as an arbitrary string unique across all root
entities of this kind
public static Key createKey(Key parent, java.lang.String kind, java.lang.String name)
Key
with the provided parent from its kind and name.parent
- the parent of the key to create, can be null
kind
- the kind of the key to createname
- the name of the key in kind
, as an arbitrary string unique across all
entities of this kind
with the same parentpublic static java.lang.String createKeyString(java.lang.String kind, long id)
keyToString(Key)
on the result of createKey(String,
long)
kind
- the kind of the key to createid
- the numeric identifier of the key in kind
, unique across all root entities of
this kind, must not be zeroString
representation of the Key
that was createdpublic static java.lang.String createKeyString(Key parent, java.lang.String kind, long id)
keyToString(Key)
on the result of createKey(Key,
String, long)
parent
- the parent of the key to create, can be null
.kind
- the kind of the key to createid
- the numeric identifier of the key in kind
, unique across entities of this
kind with the same parent, must not be zeroString
representation of the Key
that was createdpublic static java.lang.String createKeyString(java.lang.String kind, java.lang.String name)
keyToString(Key)
on the result of createKey(String,
String)
kind
- the kind of the key to createname
- the name of the key in kind
, as an arbitrary string unique across root
entities of this kind
String
representation of the Key
that was createdpublic static java.lang.String createKeyString(Key parent, java.lang.String kind, java.lang.String name)
keyToString(Key)
on the result of createKey(Key,
String, String)
parent
- the parent of the key to create, can be null
.kind
- the kind of the key to createname
- the name of the key in kind
, as an arbitrary string unique across entities
of this kind
with the same parentString
representation of the Key
that was createdpublic static java.lang.String keyToString(Key key)
Key
into a websafe string. For example, this string can safely be used as an
URL parameter embedded in a HTML document. Note that
key.equals(KeyFactory.stringToKey(KeyFactory.keyToString(key))
should evaluate to true
.key
- The Key
to convert to a String
.String
representation of the provided String
.java.lang.IllegalArgumentException
- If the specified Key
is incomplete.public static Key stringToKey(java.lang.String encoded)
String
-representation of a Key
into the Key
instance it
represents. Note that
str.equals(KeyFactory.keyToString(KeyFactory.stringToKey(str))
should evaluate to true
for all strings returned by keyToString(com.google.appengine.api.datastore.Key)
.encoded
- The String
representation of a Key
.Key
that the given String
represents.java.lang.IllegalArgumentException
- If the string cannot be parsed.