org.apache.jmeter.testbeans

## Class BeanInfoSupport

- java.lang.Object
- - java.beans.SimpleBeanInfo
  - - org.apache.jmeter.testbeans.BeanInfoSupport

All Implemented Interfaces:
  BeanInfo

Direct Known Subclasses:
  AccessLogSamplerBeanInfo, BeanShellBeanInfoSupport, BoltConnectionElementBeanInfo, BoltTestElementBeanInfoSupport, CompareAssertionBeanInfo, ConstantThroughputTimerBeanInfo, CSVDataSetBeanInfo, DataSourceElementBeanInfo, DebugPostProcessorBeanInfo, DebugSamplerBeanInfo, JDBCTestElementBeanInfoSupport, KeystoreConfigBeanInfo, MongoScriptSamplerBeanInfo, MongoSourceElementBeanInfo, PreciseThroughputTimerBeanInfo, RandomVariableConfigBeanInfo, ScriptingBeanInfoSupport, SyncTimerBeanInfo

    public abstract class BeanInfoSupport
    extends SimpleBeanInfo

Support class for test bean beanInfo objects. It will help using the introspector to get most of the information, to then modify it at will.

To use, subclass it, create a subclass with a parameter-less constructor that:

1. Calls super(beanClass)
2. Modifies the property descriptors, bean descriptor, etc. at will.

Even before any such modifications, a resource bundle named xxxResources (where xxx is the fully qualified bean class name) will be obtained if available and used to localize the following:

- Bean's display name -- from property displayName.
- Properties' display names -- from properties propertyName.displayName.
- Properties' short descriptions -- from properties propertyName.shortDescription.

The resource bundle will be stored as the bean descriptor's "resourceBundle" attribute, so that it can be used for further localization. TestBeanGUI, for example, uses it to obtain the group's display names from properties groupName.displayName.

### Field Summary

Fields
`static String` `DEFAULT` Default value, must be provided if `NOT_UNDEFINED` is TRUE
`static String` `DEFAULT_NOT_SAVED` Default value is not saved; only non-defaults are saved
`static String` `MULTILINE` If specified, create a multi-line editor
`static String` `NOT_EXPRESSION` Whether the field disallows JMeter expressions; Boolean, default FALSE
`static String` `NOT_OTHER` Whether the field disallows constant values different from the provided tags; Boolean, default FALSE
`static String` `NOT_UNDEFINED` Whether the field must be defined (i.e.
`static String` `RESOURCE_BUNDLE` Pointer to the resource bundle, if any (will generally be null)
`static String` `TAGS`
`static String` `TEXT_LANGUAGE` TextEditor property

### Fields inherited from interface java.beans.BeanInfo

`ICON_COLOR_16x16, ICON_COLOR_32x32, ICON_MONO_16x16, ICON_MONO_32x32`

### Constructor Summary

Constructors
`protected` `BeanInfoSupport(Class<? extends TestBean> beanClass)` Construct a BeanInfo for the given class.

### Method Summary

All Methods Instance Methods Concrete Methods
`protected void` `createPropertyGroup(String group, String[] names)` Utility method to group and order properties.
`BeanInfo[]` `getAdditionalBeanInfo()`
`BeanDescriptor` `getBeanDescriptor()`
`int` `getDefaultEventIndex()`
`int` `getDefaultPropertyIndex()`
`EventSetDescriptor[]` `getEventSetDescriptors()`
`Image` `getIcon(int iconKind)`
`MethodDescriptor[]` `getMethodDescriptors()`
`PropertyDescriptor[]` `getPropertyDescriptors()`
`protected PropertyDescriptor` `property(String name)` Get the property descriptor for the property of the given name.
`protected PropertyDescriptor` `property(String name, Class<? extends Enum<?>> enumClass)` Get the property descriptor for the property of the given name.
`protected PropertyDescriptor` `property(String name, TypeEditor editor)` Get the property descriptor for the property of the given name.
`protected void` `setIcon(String resourceName)` Set the bean's 16x16 colour icon.

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

`loadImage`

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

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### TAGS

    public static final String TAGS

See Also:
  Constant Field Values

#### NOT_UNDEFINED

    public static final String NOT_UNDEFINED

Whether the field must be defined (i.e. is required); Boolean, defaults to FALSE

See Also:
  Constant Field Values

#### NOT_EXPRESSION

    public static final String NOT_EXPRESSION

Whether the field disallows JMeter expressions; Boolean, default FALSE

See Also:
  Constant Field Values

#### NOT_OTHER

    public static final String NOT_OTHER

Whether the field disallows constant values different from the provided tags; Boolean, default FALSE

See Also:
  Constant Field Values

#### MULTILINE

    public static final String MULTILINE

If specified, create a multi-line editor

See Also:
  Constant Field Values

#### DEFAULT

    public static final String DEFAULT

Default value, must be provided if `NOT_UNDEFINED` is TRUE

See Also:
  Constant Field Values

#### DEFAULT_NOT_SAVED

    public static final String DEFAULT_NOT_SAVED

Default value is not saved; only non-defaults are saved

See Also:
  Constant Field Values

#### RESOURCE_BUNDLE

    public static final String RESOURCE_BUNDLE

Pointer to the resource bundle, if any (will generally be null)

See Also:
  Constant Field Values

#### TEXT_LANGUAGE

    public static final String TEXT_LANGUAGE

TextEditor property

See Also:
  Constant Field Values

### Constructor Detail

#### BeanInfoSupport

    protected BeanInfoSupport(Class<? extends TestBean> beanClass)

Construct a BeanInfo for the given class.

Parameters:
  `beanClass` - class for which to construct a BeanInfo

### Method Detail

#### property

    protected PropertyDescriptor property(String name)

Get the property descriptor for the property of the given name.

Parameters:
  `name` - property name
Returns:
  descriptor for a property of that name, or null if there's none

#### property

    protected PropertyDescriptor property(String name,
                                          TypeEditor editor)

Get the property descriptor for the property of the given name. Sets the GUITYPE to the provided editor.

Parameters:
  `name` - property name
  `editor` - the TypeEditor enum that describes the property editor
Returns:
  descriptor for a property of that name, or null if there's none

#### property

    protected PropertyDescriptor property(String name,
                                          Class<? extends Enum<?>> enumClass)

Get the property descriptor for the property of the given name. Sets the GUITYPE to the provided enum.

Parameters:
  `name` - property name
  `enumClass` - the enum class that is to be used by the editor
Returns:
  descriptor for a property of that name, or null if there's none

#### setIcon

    protected void setIcon(String resourceName)

Set the bean's 16x16 colour icon.

Parameters:
  `resourceName` - A pathname relative to the directory holding the class file of the current class.

#### createPropertyGroup

    protected void createPropertyGroup(String group,
                                       String[] names)

Utility method to group and order properties.

It will assign the given group name to each of the named properties, and set their order attribute so that they are shown in the given order.

The created groups will get order 1, 2, 3,... in the order in which they are created.

Parameters:
  `group` - name of the group
  `names` - property names in the desired order

#### getAdditionalBeanInfo

    public BeanInfo[] getAdditionalBeanInfo()

Specified by:
  `getAdditionalBeanInfo` in interface `BeanInfo`
Overrides:
  `getAdditionalBeanInfo` in class `SimpleBeanInfo`

#### getBeanDescriptor

    public BeanDescriptor getBeanDescriptor()

Specified by:
  `getBeanDescriptor` in interface `BeanInfo`
Overrides:
  `getBeanDescriptor` in class `SimpleBeanInfo`

#### getDefaultEventIndex

    public int getDefaultEventIndex()

Specified by:
  `getDefaultEventIndex` in interface `BeanInfo`
Overrides:
  `getDefaultEventIndex` in class `SimpleBeanInfo`

#### getDefaultPropertyIndex

    public int getDefaultPropertyIndex()

Specified by:
  `getDefaultPropertyIndex` in interface `BeanInfo`
Overrides:
  `getDefaultPropertyIndex` in class `SimpleBeanInfo`

#### getEventSetDescriptors

    public EventSetDescriptor[] getEventSetDescriptors()

Specified by:
  `getEventSetDescriptors` in interface `BeanInfo`
Overrides:
  `getEventSetDescriptors` in class `SimpleBeanInfo`

#### getIcon

    public Image getIcon(int iconKind)

Specified by:
  `getIcon` in interface `BeanInfo`
Overrides:
  `getIcon` in class `SimpleBeanInfo`

#### getMethodDescriptors

    public MethodDescriptor[] getMethodDescriptors()

Specified by:
  `getMethodDescriptors` in interface `BeanInfo`
Overrides:
  `getMethodDescriptors` in class `SimpleBeanInfo`

#### getPropertyDescriptors

    public PropertyDescriptor[] getPropertyDescriptors()

Specified by:
  `getPropertyDescriptors` in interface `BeanInfo`
Overrides:
  `getPropertyDescriptors` in class `SimpleBeanInfo`