Package org.apache.commons.beanutils2

# Class MappedPropertyDescriptor

java.lang.Object
java.beans.FeatureDescriptor
java.beans.PropertyDescriptor
org.apache.commons.beanutils2.MappedPropertyDescriptor

public class MappedPropertyDescriptor extends PropertyDescriptor
A MappedPropertyDescriptor describes one mapped property. Mapped properties are multivalued properties like indexed properties but that are accessed with a String key instead of an index. Such property values are typically stored in a Map collection. For this class to work properly, a mapped value must have getter and setter methods of the form

`get<strong>Property</strong>(String key)` and

`set<strong>Property</strong>(String key, Object value)`,

where `<strong>Property</strong>` must be replaced by the name of the property.

See Also:
  - `PropertyDescriptor`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `MappedPropertyDescriptor(String propertyName, Class<?> beanClass)`
  Constructs a MappedPropertyDescriptor for a property that follows the standard Java convention by having getFoo and setFoo accessor methods, with the addition of a String parameter (the key).
  `MappedPropertyDescriptor(String propertyName, Class<?> beanClass, String mappedGetterName, String mappedSetterName)`
  This constructor takes the name of a mapped property, and method names for reading and writing the property.
  `MappedPropertyDescriptor(String propertyName, Method mappedGetter, Method mappedSetter)`
  This constructor takes the name of a mapped property, and Method objects for reading and writing the property.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Class<?>`
  `getMappedPropertyType()`
  Gets the Class object for the property values.
  `Method`
  `getMappedReadMethod()`
  Gets the method that should be used to read one of the property value.
  `Method`
  `getMappedWriteMethod()`
  Gets the method that should be used to write one of the property value.
  `void`
  `setMappedReadMethod(Method mappedGetter)`
  Sets the method that should be used to read one of the property value.
  `void`
  `setMappedWriteMethod(Method mappedSetter)`
  Sets the method that should be used to write the property value.

  ### Methods inherited from class java.beans.PropertyDescriptor

  `createPropertyEditor, equals, getPropertyEditorClass, getPropertyType, getReadMethod, getWriteMethod, hashCode, isBound, isConstrained, setBound, setConstrained, setPropertyEditorClass, setReadMethod, setWriteMethod`

  ### Methods inherited from class java.beans.FeatureDescriptor

  `attributeNames, getDisplayName, getName, getShortDescription, getValue, isExpert, isHidden, isPreferred, setDisplayName, setExpert, setHidden, setName, setPreferred, setShortDescription, setValue, toString`

  ### Methods inherited from class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### MappedPropertyDescriptor

    public MappedPropertyDescriptor(String propertyName, Class<?> beanClass) throws IntrospectionException
    Constructs a MappedPropertyDescriptor for a property that follows the standard Java convention by having getFoo and setFoo accessor methods, with the addition of a String parameter (the key). Thus if the argument name is "fred", it will assume that the writer method is "setFred" and the reader method is "getFred". Note that the property name should start with a lower case character, which will be capitalized in the method names.
    Parameters:
      `propertyName` - The programmatic name of the property.
      `beanClass` - The Class object for the target bean. For example sun.beans.OurButton.class.
    Throws:
      `IntrospectionException` - if an exception occurs during introspection.

  - ### MappedPropertyDescriptor

    public MappedPropertyDescriptor(String propertyName, Class<?> beanClass, String mappedGetterName, String mappedSetterName) throws IntrospectionException
    This constructor takes the name of a mapped property, and method names for reading and writing the property.
    Parameters:
      `propertyName` - The programmatic name of the property.
      `beanClass` - The Class object for the target bean. For example sun.beans.OurButton.class.
      `mappedGetterName` - The name of the method used for reading one of the property values. May be null if the property is write-only.
      `mappedSetterName` - The name of the method used for writing one of the property values. May be null if the property is read-only.
    Throws:
      `IntrospectionException` - if an exception occurs during introspection.

  - ### MappedPropertyDescriptor

    public MappedPropertyDescriptor(String propertyName, Method mappedGetter, Method mappedSetter) throws IntrospectionException
    This constructor takes the name of a mapped property, and Method objects for reading and writing the property.
    Parameters:
      `propertyName` - The programmatic name of the property.
      `mappedGetter` - The method used for reading one of the property values. May be null if the property is write-only.
      `mappedSetter` - The method used for writing one the property values. May be null if the property is read-only.
    Throws:
      `IntrospectionException` - if an exception occurs during introspection.

- ## Method Details

  - ### getMappedPropertyType

    public Class<?> getMappedPropertyType()
    Gets the Class object for the property values.
    Returns:
      The Java type info for the property values. Note that the "Class" object may describe a built-in Java type such as "int". The result may be "null" if this is a mapped property that does not support non-keyed access.

      This is the type that will be returned by the mappedReadMethod.

  - ### getMappedReadMethod

    public Method getMappedReadMethod()
    Gets the method that should be used to read one of the property value.
    Returns:
      The method that should be used to read the property value. May return null if the property can't be read.

  - ### getMappedWriteMethod

    public Method getMappedWriteMethod()
    Gets the method that should be used to write one of the property value.
    Returns:
      The method that should be used to write one of the property value. May return null if the property can't be written.

  - ### setMappedReadMethod

    public void setMappedReadMethod(Method mappedGetter) throws IntrospectionException
    Sets the method that should be used to read one of the property value.
    Parameters:
      `mappedGetter` - The mapped getter method.
    Throws:
      `IntrospectionException` - If an error occurs finding the mapped property

  - ### setMappedWriteMethod

    public void setMappedWriteMethod(Method mappedSetter) throws IntrospectionException
    Sets the method that should be used to write the property value.
    Parameters:
      `mappedSetter` - The mapped setter method.
    Throws:
      `IntrospectionException` - If an error occurs finding the mapped property