# Package `com.install4j.api.beaninfo`

This package contains the utility classes for writing BeanInfo classes for screens, actions, and form components.

See the [API overview](../../api.md) for general remarks on
how to use the install4j API.

**This package is optional**. No other packages use this package. By developing BeanInfo classes
according to the [JavaBean specification](http://www.oracle.com/technetwork/articles/javaee/spec-136004.html), you can
control the configurability, presentation and validation of your beans at design time. **BeanInfo classes
do not influence runtime behavior.**

When developing bean infos for your beans, it is recommended to use the appropriate
derived class of [`Install4JBeanInfo`](Install4JBeanInfo.md) as the base class.
[`Install4JPropertyDescriptor`](Install4JPropertyDescriptor.md) and its derived classes provide factory methods
for generating property descriptors with the appropriate named attributes.

## Types

| Type | Kind | Description |
|---|---|---|
| [ActionBeanInfo](ActionBeanInfo.md) | class | Base class for BeanInfos of action classes. |
| [ActionElevationType](ActionElevationType.md) | enum | Enumeration class for all possible elevation strategies for actions. |
| [ActionInitializer](ActionInitializer.md) | interface | Interface for initializing actions that are associated with screens. |
| [ActionListInitializer](ActionListInitializer.md) | interface | Interface for the [`ActionBeanInfo.ATTRIBUTE_ACTION_LIST_INITIALIZER`](ActionBeanInfo.md#attribute-action-list-initializer) value of a bean descriptor. |
| [ActionListPropertyDescriptor](ActionListPropertyDescriptor.md) | class | Property descriptor for properties that contain a list of configurable actions. |
| [ActionValidator](ActionValidator.md) | interface | Validates actions if the validation depends on a containing [`ActionList`](../beans/ActionList.md) property. |
| [AskUserFailureDefaults](AskUserFailureDefaults.md) | class | Configuration class to set the default selection values of the possible answers for the "Ask user" failure strategy when configuring actions in the install4j IDE. |
| [BeanInitializer](BeanInitializer.md) | interface | Interface for the [`Install4JBeanInfo.ATTRIBUTE_BEAN_INITIALIZER`](Install4JBeanInfo.md#attribute-bean-initializer) value of a bean descriptor. |
| [BeanValidationException](BeanValidationException.md) | class | Exception for notifying the user that a property value of a bean is not valid. |
| [BeanValidator](BeanValidator.md) | interface | Interface for the [`Install4JBeanInfo.ATTRIBUTE_BEAN_VALIDATOR`](Install4JBeanInfo.md#attribute-bean-validator) value of a bean descriptor. |
| [CustomizerCallback](CustomizerCallback.md) | interface | Extended design-time services for customizers. |
| [CustomizerPlacement](CustomizerPlacement.md) | enum | Enumeration class for all possible placements of the customizer in the install4j GUI. |
| [EnumerationMapEntry](EnumerationMapEntry.md) | class | Entry in an enumeration defined by [`EnumerationMapper`](EnumerationMapper.md). |
| [EnumerationMapper](EnumerationMapper.md) | interface | Interface for mapping values and descriptions of enumerated properties. |
| [FailureStrategy](FailureStrategy.md) | enum | Enumeration class for all possible failure strategies of actions. |
| [FileContentType](FileContentType.md) | enum | Enumeration class for all possible file content types for file property descriptors. |
| [FilePropertyDescriptor](FilePropertyDescriptor.md) | class | Property descriptor for properties that contain one or several files. |
| [FileSelectionMode](FileSelectionMode.md) | enum | Enumeration class for all possible file selection modes for file property descriptors. |
| [FormComponentBeanInfo](FormComponentBeanInfo.md) | class | Base class for form component bean infos. |
| [Install4JBeanInfo](Install4JBeanInfo.md) | class | Base class for bean infos. |
| [Install4JPropertyDescriptor](Install4JPropertyDescriptor.md) | class | Property descriptor for use in instances of [`Install4JBeanInfo`](Install4JBeanInfo.md). |
| [ProjectReportProperty](ProjectReportProperty.md) | class | A project report element contributed by a customizer. |
| [PropertyConverter](PropertyConverter.md) | interface | A property converter translates between a string representation and the actual object state and provides an optional [`property customizer`](PropertyCustomizer.md). |
| [PropertyCustomizer](PropertyCustomizer.md) | interface | Customizer component for a property that is used in a dialog. |
| [PropertyFilter](PropertyFilter.md) | interface | A filter interface that can be used to determine whether a property should be included or not. |
| [ScreenBeanInfo](ScreenBeanInfo.md) | class | Base class for screen bean infos. |
| [ScriptParameter](ScriptParameter.md) | class | Descriptor for script parameters of script properties defined with a [`ScriptPropertyDescriptor`](ScriptPropertyDescriptor.md). |
| [ScriptPropertyDescriptor](ScriptPropertyDescriptor.md) | class | Property descriptor for properties of type [`ScriptProperty`](../beans/ScriptProperty.md). |
| [SequenceValidator](SequenceValidator.md) | interface | Interface for controlling insertion and reordering of beans at design-time. |
| [VisibilityDiscriminator](VisibilityDiscriminator.md) | interface | Interface for controlling the visibility of child properties based on the value of the parent property. |

