O'Reilly logo

Developing Java Beans by Robert Englander

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Providing Additional BeanInfo Objects

I mentioned near the beginning of this chapter that when explicit information is provided for a given feature set of the Bean, the base classes are not examined for that feature set. This creates a problem when you create a Bean from a subclass that provides only some of the exposed properties, methods, and events, and the rest come from a base class. Let’s say you have class AA that exposes a property named propA, and class BB that extends class AA and exposes its own property named propB. If you were to use low-level reflection to analyze class BB, you would find two properties named propA and propB. Now let’s say you create a class called BBBeanInfo (the BeanInfo class for class BB). This class implements the getPropertyDescriptor() method by returning a property descriptor array that contains one element, an instance of java.beans.PropertyDescriptor for propB. The problem here is that the property named propA that comes from base class AA is no longer being exposed. It certainly isn’t the responsibility of the BBBeanInfo class to create property descriptors for its base classes. First of all, if class AA changes then BBBeanInfo would have to be updated to reflect the change. That doesn’t sound like a good idea. And if you had class CC that extends class BB, the BeanInfo class for CC would have to replicate the property descriptors for AA and BB. This is definitely not the right approach.

The java.beans.BeanInfo interface includes a method ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required