Package org.apache.tapestry5.beanmodel.services

## Interface BeanModelSource

- All Known Implementing Classes:
    `BeanModelSourceImpl`

      public interface BeanModelSource

  Used by a component to create a default `BeanModel` for a particular bean class. Also provides support to the model by generating validation information for individual fields. BeanModels are the basis for the `BeanEditor` and `Grid` comopnents.
  See Also:
    `PropertyConduitSource`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `<T> BeanModel<T>` | `create​(Class<T> beanClass, boolean filterReadOnlyProperties, Messages messages)` | Deprecated. use `createDisplayModel(Class, org.apache.tapestry5.commons.Messages)` or `createEditModel(Class, org.apache.tapestry5.commons.Messages)`
    `<T> BeanModel<T>` | `createDisplayModel​(Class<T> beanClass, Messages messages)` | Creates a model for display purposes; this may include properties which are read-only.
    `<T> BeanModel<T>` | `createEditModel​(Class<T> beanClass, Messages messages)` | Creates a model for edit and update purposes, only properties that are fully read-write are included.

- - ### Method Detail

    - #### create

          <T> BeanModel<T> create​(Class<T> beanClass,
                                  boolean filterReadOnlyProperties,
                                  Messages messages)

      Deprecated.
      use `createDisplayModel(Class, org.apache.tapestry5.commons.Messages)` or `createEditModel(Class, org.apache.tapestry5.commons.Messages)`
      Creates a new model used for editing the indicated bean class. The model will represent all read/write properties of the bean. The order of properties is determined from the order of the getter methods in the code, and can be overridden with the `ReorderProperties` annotation. The labels for the properties are derived from the property names, but if the component's message catalog has keys of the form `propertyName-label`, then those will be used instead. Models are mutable, so they are not cached, a fresh instance is created each time.
      Parameters:
        `beanClass` - class of object to be edited
        `filterReadOnlyProperties` - if true, then properties that are read-only will be skipped (leaving only read-write properties, appropriate for `BeanEditForm`, etc.). If false, then both read-only and read-write properties will be included (appropriate for `Grid` or `BeanDisplay`).
        `messages` - Used to find explicit overrides of
      Returns:
        a model

    - #### createDisplayModel

          <T> BeanModel<T> createDisplayModel​(Class<T> beanClass,
                                              Messages messages)

      Creates a model for display purposes; this may include properties which are read-only.
      Parameters:
        `beanClass` - class of object to be edited
        `messages` -
      Returns:
        a model containing properties that can be presented to the user

    - #### createEditModel

          <T> BeanModel<T> createEditModel​(Class<T> beanClass,
                                           Messages messages)

      Creates a model for edit and update purposes, only properties that are fully read-write are included.
      Parameters:
        `beanClass` - class of object to be edited
        `messages` -
      Returns:
        a model containing properties that can be presented to the user