Package org.apache.commons.beanutils2

# Interface IntrospectionContext

public interface IntrospectionContext

A context interface used during introspection for querying and setting property descriptors.

An implementation of this interface is passed to `BeanIntrospector` objects during processing of a bean class. It allows the `BeanIntrospector` to deliver descriptors for properties it has detected. It is also possible to find out which properties have already been found by another `BeanIntrospector`; this allows multiple `BeanIntrospector` instances to collaborate.

Since:
  1.9

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addPropertyDescriptor(PropertyDescriptor desc)`
  Adds the given property descriptor to this context.
  `void`
  `addPropertyDescriptors(PropertyDescriptor[] descriptors)`
  Adds an array of property descriptors to this context.
  `PropertyDescriptor`
  `getPropertyDescriptor(String name)`
  Returns the descriptor for the property with the given name or null if this property is unknown.
  `Class<?>`
  `getTargetClass()`
  Returns the class that is subject of introspection.
  `boolean`
  `hasProperty(String name)`
  Tests whether a descriptor for the property with the given name is already contained in this context.
  `Set<String>`
  `propertyNames()`
  Returns a set with the names of all properties known to this context.
  `void`
  `removePropertyDescriptor(String name)`
  Removes the descriptor for the property with the given name.

- ## Method Details

  - ### addPropertyDescriptor

    void addPropertyDescriptor(PropertyDescriptor desc)
    Adds the given property descriptor to this context. This method is called by a `BeanIntrospector` during introspection for each detected property. If this context already contains a descriptor for the affected property, it is overridden.
    Parameters:
      `desc` - the property descriptor

  - ### addPropertyDescriptors

    void addPropertyDescriptors(PropertyDescriptor[] descriptors)
    Adds an array of property descriptors to this context. Using this method multiple descriptors can be added at once.
    Parameters:
      `descriptors` - the array of descriptors to be added

  - ### getPropertyDescriptor

    PropertyDescriptor getPropertyDescriptor(String name)
    Returns the descriptor for the property with the given name or null if this property is unknown.
    Parameters:
      `name` - the name of the property in question
    Returns:
      the descriptor for this property or null if this property is unknown

  - ### getTargetClass

    Class<?> getTargetClass()
    Returns the class that is subject of introspection.
    Returns:
      the current class

  - ### hasProperty

    boolean hasProperty(String name)
    Tests whether a descriptor for the property with the given name is already contained in this context. This method can be used for instance to prevent that an already existing property descriptor is overridden.
    Parameters:
      `name` - the name of the property in question
    Returns:
      true if a descriptor for this property has already been added, false otherwise

  - ### propertyNames

    Set<String> propertyNames()
    Returns a set with the names of all properties known to this context.
    Returns:
      a set with the known property names

  - ### removePropertyDescriptor

    void removePropertyDescriptor(String name)
    Removes the descriptor for the property with the given name.
    Parameters:
      `name` - the name of the affected property