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

  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 Details

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