Sun Java Solaris Communities My SDN Account Join SDN
 
Article

JavaBeans - Main API Areas

 

The JavaBeans APIs cover five main areas:

  • Event handling. These APIs allow one component to deliver events to other components. The AWT team has extended the AWT event mechanism to make it more flexible, and to make it easier to connect arbitrary event sources to arbitrary event sinks. We have also adopted this new AWT event model for JavaBeans.

  • Properties. Properties represent discrete attributes of a component such as its foreground color, its font, etc. We have defined standard design conventions for components that wish to expose properties.

  • Persistence. These APIs allow JavaBeans components to be stored away as part of the state of their parent container. The default persistence mechanism is the automatic Java serialization mechanism, but we are also designing a more sophisticated persistence API for those components that need more explicit control over their persistent state.

  • Introspection. A key goal of the JavaBeans APIs is to use the Java type system to define components. To allow application builder tools to analyze components we have developed APIs to let them study the Java types of components. These APIs exist at two levels. JavaSoft has defined low level APIs to allow tools to learn about all the methods, interfaces, variables, etc, associated with a Java class. In addition, as part of the JavaBeans APIs we provide a higher level inspection API that uses this lower level API and a set of standard design patterns to determine which events, properties, and methods are exported by a given Java Bean. We also provide APIs to allow a bean to override this default analysis.

  • Application Builder APIs. JavaBeans components will have two main roles. Their normal role is when they are used as active components inside a running application. But they have an important second role when they are used inside an application builder. We are defining APIs so that beans can provide custom component editors known as customizers for use with application builders. We are deliberately allowing a bean's customizer be be separate from the bean proper, so that the customizer is only needed during application development, and need not be downloaded when the resulting application is run.