com.google.appengine.api.search

## Class Document

- java.lang.Object
- - com.google.appengine.api.search.Document

- All Implemented Interfaces:
    java.io.Serializable
  Direct Known Subclasses:
    ScoredDocument

      public class Document
      extends java.lang.Object
      implements java.io.Serializable

  Represents a user generated document. The following example shows how to create a document consisting of a set of fields, some with plain text and some in HTML.

          Document document = Document.newBuilder().setId("document id")
             .setLocale(Locale.UK)
             .addField(Field.newBuilder()
                 .setName("subject")
                 .setText("going for dinner"))
             .addField(Field.newBuilder()
                 .setName("body")
                 .setHTML("<html>I found a restaurant.</html>"))
             .addField(Field.newBuilder()
                 .setName("signature")
                 .setText("ten post jest przeznaczony dla odbiorcy")
                 .setLocale(new Locale("pl")))
             .addField(Field.newBuilder()
                 .setName("tag")
                 .setText("food"))
             .addField(Field.newBuilder()
                 .setName("tag")
                 .setText("friend"))
             .build();

  The following example shows how to access the fields within a document:

          Document document = ...

          for (Field field : document.getFields()) {
            switch (field.getType()) {
              case TEXT: use(field.getText()); break;
              case HTML: use(field.getHtml()); break;
              case ATOM: use(field.getAtom()); break;
              case DATE: use(field.getDate()); break;
            }
          }

  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `Document.Builder` A builder of documents.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(java.lang.Object object)`
    `java.lang.Iterable<Field>` | `getField(java.lang.String name)` Deprecated. Use `getFields(String)` to get all fields with a specific name.
    `int` | `getFieldCount(java.lang.String name)` Returns the number of times a field with the given name is present in this document.
    `java.util.Set<java.lang.String>` | `getFieldNames()`
    `java.lang.Iterable<Field>` | `getFields()`
    `java.lang.Iterable<Field>` | `getFields(java.lang.String name)` Deprecated.
    `java.lang.String` | `getId()`
    `java.util.Locale` | `getLocale()`
    `Field` | `getOnlyField(java.lang.String name)` Returns the single field with the given name.
    `int` | `getRank()` Returns the rank of this document.
    `int` | `hashCode()`
    `static Document.Builder` | `newBuilder()` Creates a new document builder.
    `java.lang.String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Method Detail

    - #### getFields

          public java.lang.Iterable<Field> getFields()

      Returns:
        an iterable of `Field` in the document

    - #### getFieldNames

          public java.util.Set<java.lang.String> getFieldNames()

      Returns:
        an unmodifiable `Set` of the field names in the document

    - #### getFields

          @Deprecated
          public java.lang.Iterable<Field> getFields(java.lang.String name)

      Deprecated.
      Get an iterable of all fields with the given name.
      Parameters:
        `name` - the name of the field name whose values are to be returned
      Returns:
        an unmodifiable `Iterable` of `Field` with the given name or `null`

    - #### getField

          @Deprecated
          public java.lang.Iterable<Field> getField(java.lang.String name)

      Deprecated. Use `getFields(String)` to get all fields with a specific name.
      Parameters:
        `name` - the name of the field name whose values are to be returned
      Returns:
        an unmodifiable `Iterable` of `Field` with the given name or `null`

    - #### getOnlyField

          public Field getOnlyField(java.lang.String name)

      Returns the single field with the given name.
      Parameters:
        `name` - the name of the field to return
      Returns:
        the single field with name
      Throws:
        `java.lang.IllegalArgumentException` - if the document does not have exactly one field with the name

    - #### getFieldCount

          public int getFieldCount(java.lang.String name)

      Returns the number of times a field with the given name is present in this document.
      Parameters:
        `name` - the name of the field to be counted
      Returns:
        the number of times a field with the given name is present

    - #### getId

          public java.lang.String getId()

      Returns:
        the id of the document

    - #### getLocale

          public java.util.Locale getLocale()

      Returns:
        the `Locale` the document is written in. Can be null

    - #### getRank

          public int getRank()

      Returns the rank of this document. A document's rank is used to determine the default order in which documents are returned by search, if no sorting or scoring is specified.
      Returns:
        the rank of this document

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `java.lang.Object`

    - #### equals

          public boolean equals(java.lang.Object object)

      Overrides:
        `equals` in class `java.lang.Object`

    - #### newBuilder

          public static Document.Builder newBuilder()

      Creates a new document builder. You must use this method to obtain a new builder. The returned builder must be used to specify all properties of the document. To obtain the document call the `Document.Builder.build()` method on the returned builder.
      Returns:
        a builder which constructs a document object

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`