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

    Constructors
    Constructor and Description
    `Builder(Key key)` Create a `Builder`, establishing the provided `Key` as the topmost ancestor.
    `Builder(java.lang.String kind, long id)` Create a `Builder`, establishing a `Key` constructed from the provided kind and id as the topmost ancestor.
    `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

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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

    - #### Builder

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

    - #### Builder

          public 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

    - #### Builder

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