Package org.apache.tapestry5.commons.services

# Interface PropertyAccess

All Known Implementing Classes:
  `PropertyAccessImpl`

public interface PropertyAccess
A wrapper around the JavaBean Introspector that allows more manageable access to JavaBean properties of objects. Only provides access to simple properties. Indexed properties are ignored. Starting in Tapestry 5.2, public fields can now be accessed as if they were properly JavaBean properties. Where there is a name conflict, the true property will be favored over the field access.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `clearCache()`
  Discards all stored property access information, discarding all created class adapters.
  `Object`
  `get(Object instance, String propertyName)`
  Reads the value of a property.
  `ClassPropertyAdapter`
  `getAdapter(Class forClass)`
  Returns the adapter used to access properties within the indicated class.
  `ClassPropertyAdapter`
  `getAdapter(Object instance)`
  Returns the adapter for a particular object instance.
  `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.
  `void`
  `set(Object instance, String propertyName, Object value)`
  Updates the value of a property.

- ## Method Details

  - ### get

    Object get(Object instance, String propertyName)
    Reads the value of a property.
    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.
    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. A convenience over invoking `getAdapter(Object)`.`ClassPropertyAdapter.getPropertyAdapter(String)`.`AnnotationProvider.getAnnotation(Class)`
    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
    Throws:
      `IllegalArgumentException` - if property does not exist
    Since:
      5.4

  - ### getAdapter

    ClassPropertyAdapter getAdapter(Object instance)
    Returns the adapter for a particular object instance. A convienience over invoking `getAdapter(Class)`.

  - ### getAdapter

    ClassPropertyAdapter getAdapter(Class forClass)
    Returns the adapter used to access properties within the indicated class.

  - ### clearCache

    void clearCache()
    Discards all stored property access information, discarding all created class adapters.