java.beans

Interface BeanInfo

public interface BeanInfo

BeanInfo can be implemented in order to provide explicit information to the Introspector. When you write a BeanInfo class, you implement this interface and provide explicit information by returning a non-null value from the appropriate method. If you wish the Introspector to determine certain information in the normal way, just return null (or in the case of int methods, return -1). There is a class called SimpleBeanInfo which returns null from all methods, which you may extend and only override the methods you wish to override.

When you have written the class, give it the name <Bean Class Name>BeanInfo and place it in the same package as the Bean, or in the bean info search path (see Introspector for information on search paths).

A simple note about the way the Introspector interacts with BeanInfo. Introspectors look at a Bean class and determine if there is a BeanInfo class with it. If there is not a BeanInfo class, it will behave as if the BeanInfo class provided was a SimpleBeanInfo class (i.e. it will determine all information automatically).

If there is a BeanInfo class, then any methods that do *not* return null are regarded as providing definitive information about the class and all of its superclasses for those information types. Even if a parent BeanInfo class explicitly returns that information, it will not be used.

Since: JDK1.1

Field Summary
intICON_COLOR_16x16
Use this as a parameter for the getIcon() command to retrieve a certain type of icon.
intICON_COLOR_32x32
Use this as a parameter for the getIcon() command to retrieve a certain type of icon.
intICON_MONO_16x16
Use this as a parameter for the getIcon() command to retrieve a certain type of icon.
intICON_MONO_32x32
Use this as a parameter for the getIcon() command to retrieve a certain type of icon.
Method Summary
BeanInfo[]getAdditionalBeanInfo()
Get additional BeanInfos representing this Bean.
BeanDescriptorgetBeanDescriptor()
Get the general description of this Bean type.
intgetDefaultEventIndex()
Get the "default" event, basically the one a RAD tool user is most likely to select.
intgetDefaultPropertyIndex()
Get the "default" property, basically the one a RAD tool user is most likely to select.
EventSetDescriptor[]getEventSetDescriptors()
Get the events this Bean type fires.
ImagegetIcon(int iconType)
Get a visual icon for this Bean.
MethodDescriptor[]getMethodDescriptors()
Get the methods this Bean type supports.
PropertyDescriptor[]getPropertyDescriptors()
Get the properties (get/set method pairs) this Bean type supports.

Field Detail

ICON_COLOR_16x16

public int ICON_COLOR_16x16
Use this as a parameter for the getIcon() command to retrieve a certain type of icon. *

ICON_COLOR_32x32

public int ICON_COLOR_32x32
Use this as a parameter for the getIcon() command to retrieve a certain type of icon. *

ICON_MONO_16x16

public int ICON_MONO_16x16
Use this as a parameter for the getIcon() command to retrieve a certain type of icon. *

ICON_MONO_32x32

public int ICON_MONO_32x32
Use this as a parameter for the getIcon() command to retrieve a certain type of icon. *

Method Detail

getAdditionalBeanInfo

public BeanInfo[] getAdditionalBeanInfo()
Get additional BeanInfos representing this Bean. In this version of JavaBeans, this method is used so that space and time can be saved by reading a BeanInfo for each class in the hierarchy (super, super(super), and so on).

The order of precedence when two pieces of BeanInfo conflict (such as two PropertyDescriptors that have the same name), in order from highest precedence to lowest, is:

  1. This BeanInfo object.
  2. getAdditionalBeanInfo()[getAdditionalBeanInfo().length]
  3. ...
  4. getAdditionalBeanInfo()[1]
  5. getAdditionalBeanInfo()[0]

Spec Note: It is possible that returning null from this method could stop Introspection in its tracks, but it is unclear from the spec whether this is the case.

Returns: additional BeanInfos representing this Bean. null may be returned (see Spec Note, above).

getBeanDescriptor

public BeanDescriptor getBeanDescriptor()
Get the general description of this Bean type.

Returns: the BeanDescriptor for the Bean, or null if the BeanDescriptor should be obtained by Introspection.

getDefaultEventIndex

public int getDefaultEventIndex()
Get the "default" event, basically the one a RAD tool user is most likely to select.

Returns: the index into the getEventSetDescriptors() that the user is most likely to use. Returns -1 if there is no default event.

getDefaultPropertyIndex

public int getDefaultPropertyIndex()
Get the "default" property, basically the one a RAD tool user is most likely to select.

Returns: the index into the getPropertyDescriptors() that the user is most likely to use. Returns -1 if there is no default event.

getEventSetDescriptors

public EventSetDescriptor[] getEventSetDescriptors()
Get the events this Bean type fires.

Returns: the EventDescriptors representing events this Bean fires. Returns null if the events are to be acquired by Introspection.

getIcon

public Image getIcon(int iconType)
Get a visual icon for this Bean. A Bean does not have to support icons, and if it does support icons, it does not have to support every single type. Sun recommends that if you only support one type, you support 16x16 color. Sun also notes that you should try to use a type (like GIF) that allows for transparent pixels, so that the background of the RAD tool can show through.

Spec Note: If you do not support the type of icon that is being asked for, but you do support another type, it is unclear whether you should return the other type or not. I would presume not.

Parameters: iconType the type of icon to get (see the ICON_* constants in this class).

Returns: the icon, or null if that type of icon is unsupported by this Bean.

getMethodDescriptors

public MethodDescriptor[] getMethodDescriptors()
Get the methods this Bean type supports.

Returns: the MethodDescriptors representing the methods this Bean type supports. Returns null if the methods are to be obtained by Introspection.

getPropertyDescriptors

public PropertyDescriptor[] getPropertyDescriptors()
Get the properties (get/set method pairs) this Bean type supports.

Returns: the PropertyDescriptors representing the properties this Bean type supports. Returns null if the properties are to be obtained by Introspection.