Module javafx.base
Package javafx.beans.property.adapter

## Class ReadOnlyJavaBeanObjectPropertyBuilder<T>

- java.lang.Object
- - javafx.beans.property.adapter.ReadOnlyJavaBeanObjectPropertyBuilder<T>

-     public final class ReadOnlyJavaBeanObjectPropertyBuilder<T>
      extends Object

  A `ReadOnlyJavaBeanObjectPropertyBuilder` can be used to create `ReadOnlyJavaBeanObjectProperties`. To create a `ReadOnlyJavaBeanObjectProperty` one first has to call `create()` to generate a builder, set the required properties, and then one can call `build()` to generate the property.

  Not all properties of a builder have to specified, there are several combinations possible. As a minimum the `name(java.lang.String)` of the property and the `bean(java.lang.Object)` have to be specified. If the name of the getter follows the conventions, this is sufficient. Otherwise it is possible to specify an alternative name for the getter (`getter(java.lang.String)`) or the getter `Methods` directly (`getter(java.lang.reflect.Method)`).

  All methods to change properties return a reference to this builder, to enable method chaining.

  If you have to generate adapters for the same property of several instances of the same class, you can reuse a `ReadOnlyJavaBeanObjectPropertyBuilder`. by switching the Java Bean instance (with `bean(java.lang.Object)` and calling `build()`.

  Since:
    JavaFX 2.1
  See Also:
    `ReadOnlyJavaBeanObjectProperty`

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ReadOnlyJavaBeanObjectPropertyBuilder()` |

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `ReadOnlyJavaBeanObjectPropertyBuilder<T>` | `bean​(Object bean)` | Set the Java Bean instance the adapter should connect to
    `ReadOnlyJavaBeanObjectPropertyBuilder<T>` | `beanClass​(Class<?> beanClass)` | Set the Java Bean class in which the getter should be searched.
    `ReadOnlyJavaBeanObjectProperty<T>` | `build()` | Generate a new `ReadOnlyJavaBeanObjectProperty` with the current settings.
    `static <T> ReadOnlyJavaBeanObjectPropertyBuilder<T>` | `create()` | Create a new instance of `ReadOnlyJavaBeanObjectPropertyBuilder`
    `ReadOnlyJavaBeanObjectPropertyBuilder<T>` | `getter​(Method getter)` | Set the getter method directly.
    `ReadOnlyJavaBeanObjectPropertyBuilder<T>` | `getter​(String getter)` | Set an alternative name for the getter.
    `ReadOnlyJavaBeanObjectPropertyBuilder<T>` | `name​(String name)` | Set the name of the property

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

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ReadOnlyJavaBeanObjectPropertyBuilder

          public ReadOnlyJavaBeanObjectPropertyBuilder()

  - ### Method Detail

    - #### create

          public static <T> ReadOnlyJavaBeanObjectPropertyBuilder<T> create()

      Create a new instance of `ReadOnlyJavaBeanObjectPropertyBuilder`
      Type Parameters:
        `T` - the type of the wrapped `Object`
      Returns:
        the new `ReadOnlyJavaBeanObjectPropertyBuilder`

    - #### build

          public ReadOnlyJavaBeanObjectProperty<T> build()
                                                  throws NoSuchMethodException

      Generate a new `ReadOnlyJavaBeanObjectProperty` with the current settings.
      Returns:
        the new `ReadOnlyJavaBeanObjectProperty`
      Throws:
        `NoSuchMethodException` - if the settings were not sufficient to find the getter of the Java Bean property

    - #### name

          public ReadOnlyJavaBeanObjectPropertyBuilder<T> name​(String name)

      Set the name of the property
      Parameters:
        `name` - the name of the property
      Returns:
        a reference to this builder to enable method chaining

    - #### bean

          public ReadOnlyJavaBeanObjectPropertyBuilder<T> bean​(Object bean)

      Set the Java Bean instance the adapter should connect to
      Parameters:
        `bean` - the Java Bean instance
      Returns:
        a reference to this builder to enable method chaining

    - #### beanClass

          public ReadOnlyJavaBeanObjectPropertyBuilder<T> beanClass​(Class<?> beanClass)

      Set the Java Bean class in which the getter should be searched. This can be useful, if the builder should generate adapters for several Java Beans of different types.
      Parameters:
        `beanClass` - the Java Bean class
      Returns:
        a reference to this builder to enable method chaining

    - #### getter

          public ReadOnlyJavaBeanObjectPropertyBuilder<T> getter​(String getter)

      Set an alternative name for the getter. This can be omitted, if the name of the getter follows Java Bean naming conventions.
      Parameters:
        `getter` - the alternative name of the getter
      Returns:
        a reference to this builder to enable method chaining

    - #### getter

          public ReadOnlyJavaBeanObjectPropertyBuilder<T> getter​(Method getter)

      Set the getter method directly. This can be omitted, if the name of the getter follows Java Bean naming conventions.
      Parameters:
        `getter` - the getter
      Returns:
        a reference to this builder to enable method chaining