Java In A Nutshell

Chapter 10 - Java Beans

Contents:
Bean Basics
A Simple Bean
A More Complex Bean
Custom Events
Specifying Bean Information
Defining a Simple Property Editor
Defining a Complex Property Editor
Defining a Bean Customizer
Naming Patterns and Conventions


10.9 Naming Patterns and Conventions

As we've seen, beanbox programs may rely on introspection of a bean to determine the list of properties, events, and methods it supports. In order for this to work, bean developers must follow a set of standard naming conventions, sometimes referred to as JavaBeans "design patterns." These patterns specify, for example, that the getter and setter accessor methods for a property should begin with get and set. Not all of the patterns are absolute requirements. If a bean has accessor methods with different names, it is possible to use a PropertyDescriptor object, specified in a BeanInfo class, to specify the accessor methods for the property. Note, however, that although an accessor method name is not required to follow the pattern, the method is required to have the exact type signature specified by the pattern.

This section lists the design patterns for bean properties, events, and methods. It also lists other conventions and requirements that you should keep in mind when developing beans.

Java Bean Patterns

Beans

class name:

Any

superclass:

Any

constructor:

Must have a no-argument constructor, or a serialized template file

packaging:

JAR file manifest entry specifies Java-Bean: True

Properties (property p of type T)

getter:

public T getP()

setter:

public void setP(T value)

Boolean Properties (property p of type boolean)

getter:

public boolean getP()

(boolean value)

or public boolean is P() setter:

public void setP

Indexed Properties (property p of type T[])

array getter:

public T[] getP()

array setter:

public void setP(T[] value)

element getter:

public T getP(int index)

element setter:

public void setP(int index, T value)

Bound Properties (property p of type T)

getter:

Same as regular property

setter:

Same as regular property

listeners:

One event listener list for all bound properties of a bean

listener registration:

public void addPropertyChangeListener (PropertyChangeListener l)

listener removal:

public void removePropertyChangeListener (PropertyChangeListener l)

Constrained Properties (property p of type T)

getter:

Same as regular property

setter:

public void setP(T value) 
                                      throws PropertyVetoException

listeners:

One event listener list for all constrained properties of a bean

listener registration:

public void addVetoableChangeListener (VetoableChangeListener l)

listener removal:

public void removeVetoableChangeListener
            (VetoableChangeListener l)

Events (event named E)

event class name:

EEvent

listener name:

EListener

listener methods:

public void methodname(EEvent e)

listener registration:

public void addEListener(EListener l)

listener removal:

public void removeEListener(EListener l)

Unicast Events (event named E only one listener allowed)

listener registration:

public void addEListener(EListener l)
       throws TooManyListenersException

listener removal:

public void removeEListener(EListener l)

Methods

method name:

Any

method args:

Any; some tools only recognize no-argument methods

BeanInfo Classes (for bean B)

class name:

BBeanInfo

Property Editors (for properties of type T)

class name:

TEditor

constructor:

Must have a no-argument constructor

Property Editors (for individual properties)

class name:

Any; register via PropertyDescriptor

constructor:

Must have a no-argument constructor

Customizers (for bean B)

class name:

Any; register via BeanDescriptor (BCustomizer by convention)

superclass:

Must be a component; typically extends Panel

constructor:

Must have a no-argument constructor

Documentation File (for bean B)

default docs:

B.html

localized docs:

locale/B.html



Back to previous page Back to the O'Reilly index


This chapter is from O'Reilly's new Java reference:
"Java In A Nutshell"




JavaTM is a trademark of Sun Microsystems, Inc.
Other companies, products, and service names may be trademarks or service marks of others.

Copyright    Trademark



  Java Education Java Home  
IBM HomeOrderEmployment