# Class ReadOnlyJavaBeanObjectPropertyBuilder<T>

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

Type Parameters:
  `T` - the type of the wrapped `Object`

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`

- ## 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 declared in class Object

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

- ## Method Details

  - ### 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