# Field.Builder
Date: 2012-02-24

## com.google.appengine.api.search
Class Field.Builder

    java.lang.Object
      com.google.appengine.api.search.Field.Builder

Enclosing class:
  Field

    public static final class Field.Builder

extends java.lang.Object

A field builder. Fields must have a name, and optionally a locale and at most one of text, html, atom or date.

Method Summary
`Field` `build()` Builds a field using this builder.
`Field.Builder` `setAtom(java.lang.String atom)` Sets an atomic value, indivisible text, for the field.
`Field.Builder` `setDate(java.util.Date date)` Sets a date associated with the field.
`Field.Builder` `setHTML(java.lang.String html)` Sets a HTML value for the field.
`Field.Builder` `setLocale(java.util.Locale locale)` Sets the Locale of the field value.
`Field.Builder` `setName(java.lang.String name)` Sets a name for the field.
`Field.Builder` `setNumber(double number)` Sets a numeric value for the field.
`Field.Builder` `setText(java.lang.String text)` Sets a text value for the field.

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

Method Detail

### setName

    public Field.Builder setName(java.lang.String name)

  Sets a name for the field. The field name length must be between 1 and FieldChecker#MAXIMUM_NAME_LENGTH and it should match `FieldChecker.FIELD_NAME_PATTERN`.

  Parameters:
    `name` - the name of the field
  Throws:
    `java.lang.IllegalArgumentException` - if the name or value is invalid

### setText

    public Field.Builder setText(java.lang.String text)

  Sets a text value for the field.

  Parameters:
    `text` - the text value of the field
  Throws:
    `java.lang.IllegalArgumentException` - if the text is invalid

### setHTML

    public Field.Builder setHTML(java.lang.String html)

  Sets a HTML value for the field.

  Parameters:
    `html` - the HTML value of the field
  Throws:
    `java.lang.IllegalArgumentException` - if the HTML is invalid

### setAtom

    public Field.Builder setAtom(java.lang.String atom)

  Sets an atomic value, indivisible text, for the field.

  Parameters:
    `atom` - the indivisible text of the field
  Throws:
    `java.lang.IllegalArgumentException` - if the atom is invalid

### setDate

    public Field.Builder setDate(java.util.Date date)

  Sets a date associated with the field. The date must not have a time component.

  Parameters:
    `date` - the date of the field
  Throws:
    `java.lang.IllegalArgumentException` - if the date has a time component

### setNumber

    public Field.Builder setNumber(double number)

  Sets a numeric value for the field. The `number` must be between `FieldChecker.MIN_NUMBER_VALUE` and `FieldChecker.MAX_NUMBER_VALUE`.

  Parameters:
    `number` - the numeric value of the field
  Throws:
    `java.lang.IllegalArgumentException` - if the number is outside the valid range

### setLocale

    public Field.Builder setLocale(java.util.Locale locale)

  Sets the Locale of the field value. If none is given, then the locale of the document will be used.

  Parameters:
    `locale` - the locale the field value is written in
  Returns:
    this builder

### build

    public Field build()

  Builds a field using this builder. The field must have a valid name, string value, type.

  Returns:
    a `Field` built by this builder
  Throws:
    `java.lang.IllegalArgumentException` - if the field has an invalid name, text, HTML, atom, date