Package org.apache.tapestry5.commons.services

## Interface ClassPropertyAdapter

- All Known Implementing Classes:
    `ClassPropertyAdapterImpl`

      public interface ClassPropertyAdapter

  Organizes all `PropertyAdapter`s for a particular class. Only provides access to simple properties. Indexed properties are ignored. When accessing properties by name, the case of the name is ignored.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Object` | `get​(Object instance, String propertyName)` | Reads the value of a property.
    `Annotation` | `getAnnotation​(Object instance, String propertyName, Class<? extends Annotation> annotationClass)` | Returns the annotation of a given property for the specified type if such an annotation is present, else null.
    `Class` | `getBeanType()` | Returns the type of bean this adapter provides properties for.
    `PropertyAdapter` | `getPropertyAdapter​(String name)` | Returns the property adapter with the given name, or null if no such adapter exists.
    `List<String>` | `getPropertyNames()` | Returns the names of all properties, sorted into alphabetic order.
    `void` | `set​(Object instance, String propertyName, Object value)` | Updates the value of a property.

- - ### Method Detail

    - #### getPropertyNames

          List<String> getPropertyNames()

      Returns the names of all properties, sorted into alphabetic order. This includes true properties (as defined in the JavaBeans specification), but also public fields. Starting in Tapestry 5.3, even public static fields are included.
      Returns:
        the property names.

    - #### getBeanType

          Class getBeanType()

      Returns the type of bean this adapter provides properties for.
      Returns:
        the type of the bean.

    - #### getPropertyAdapter

          PropertyAdapter getPropertyAdapter​(String name)

      Returns the property adapter with the given name, or null if no such adapter exists.
      Parameters:
        `name` - of the property (case is ignored)
      Returns:
        the PropertyAdapter instance associated with that property

    - #### get

          Object get​(Object instance,
                     String propertyName)

      Reads the value of a property.
      Parameters:
        `instance` - the object to read a value from
        `propertyName` - the name of the property to read (case is ignored)
      Returns:
        the value
      Throws:
        `UnsupportedOperationException` - if the property is write only
        `IllegalArgumentException` - if property does not exist

    - #### set

          void set​(Object instance,
                   String propertyName,
                   Object value)

      Updates the value of a property.
      Parameters:
        `instance` - the object to update
        `propertyName` - the name of the property to update (case is ignored)
        `value` - the value to be set
      Throws:
        `UnsupportedOperationException` - if the property is read only
        `IllegalArgumentException` - if property does not exist

    - #### getAnnotation

          Annotation getAnnotation​(Object instance,
                                   String propertyName,
                                   Class<? extends Annotation> annotationClass)

      Returns the annotation of a given property for the specified type if such an annotation is present, else null.
      Parameters:
        `instance` - the object to read a value from
        `propertyName` - the name of the property to read (case is ignored)
        `annotationClass` - the type of annotation to return
      Returns:
        the Annotation instance
      Throws:
        `IllegalArgumentException` - if property does not exist
      Since:
        5.4