# KeyFactory.Builder
Date: 2012-02-24

## com.google.appengine.api.datastore
Class KeyFactory.Builder

    java.lang.Object
      com.google.appengine.api.datastore.KeyFactory.Builder

Enclosing class:
  KeyFactory

    public static final class KeyFactory.Builder

extends java.lang.Object

Helper class that aids in the construction of `Keys` with ancestors. Initialize the `Builder` with the topmost ancestor in your key path and then add children using the `addChild(java.lang.String, java.lang.String)` overload that best suits your needs. When finished adding children, call `getKey()` to retrieve your `Key` or `getString()` to retrieve your `Key` encoded as a websafe `String`. Examples:

     import com.google.appengine.api.datastore.KeyFactory.Builder;

     ...

     Key key = new Builder("Person", 88).addChild("Address", 24).getKey();
     String keyStr = new Builder("Photo Album", "Vacation").addChild("Photo", 1424).getString();

Constructor Summary
`KeyFactory.Builder(Key key)` Create a `Builder`, establishing the provided `Key` as the topmost ancestor.
`KeyFactory.Builder(java.lang.String kind, long id)` Create a `Builder`, establishing a `Key` constructed from the provided kind and id as the topmost ancestor.
`KeyFactory.Builder(java.lang.String kind, java.lang.String name)` Create a `Builder`, establishing a `Key` constructed from the provided kind and name as the topmost ancestor.

Method Summary
`KeyFactory.Builder` `addChild(java.lang.String kind, long id)` Add a `Key` constructed from the provided kind and id as the child of the `Key` most recently added to the `Builder`.
`KeyFactory.Builder` `addChild(java.lang.String kind, java.lang.String name)` Add a `Key` constructed from the provided kind and name as the child of the `Key` most recently added to the `Builder`.
`Key` `getKey()`
`java.lang.String` `getString()`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### KeyFactory.Builder

    public KeyFactory.Builder(java.lang.String kind,
                              java.lang.String name)

  Create a `Builder`, establishing a `Key` constructed from the provided kind and name as the topmost ancestor.

  Parameters:
    `kind` - the kind of the topmost ancestor
    `name` - the name of the topmost ancestor in `kind`, as an arbitrary string unique across root entities of this `kind`

### KeyFactory.Builder

    public KeyFactory.Builder(java.lang.String kind,
                              long id)

  Create a `Builder`, establishing a `Key` constructed from the provided kind and id as the topmost ancestor.

  Parameters:
    `kind` - the kind of the topmost ancestor
    `id` - the numeric identifier of the topmost ancestor in `kind`, unique across root entities of this kind, must not be zero

### KeyFactory.Builder

    public KeyFactory.Builder(Key key)

  Create a `Builder`, establishing the provided `Key` as the topmost ancestor.

  Parameters:
    `key` - the topmost ancestor

Method Detail

### addChild

    public KeyFactory.Builder addChild(java.lang.String kind,
                                       java.lang.String name)

  Add a `Key` constructed from the provided kind and name as the child of the `Key` most recently added to the `Builder`.

  Parameters:
    `kind` - the kind of the child
    `name` - the name of the child in `kind`, as an arbitrary string unique across entities of this `kind` with the same parent
  Returns:
    `this`

### addChild

    public KeyFactory.Builder addChild(java.lang.String kind,
                                       long id)

  Add a `Key` constructed from the provided kind and id as the child of the `Key` most recently added to the `Builder`.

  Parameters:
    `kind` - the kind of the child
    `id` - the numeric identifier of the child in `kind`, unique across entities of this kind with the same parent, must not be zero
  Returns:
    `this`

### getKey

    public Key getKey()

  Returns:
    The most recently added `Key`.

### getString

    public java.lang.String getString()

  Returns:
    The most recently added `Key`, encoded as a websafe `String`.