@DefaultAnnotation({})

Package jmri.beans

Contains JMRI classes related to supporting JavaBeans and PropertyChangeListeners. The classes in this package can be broadly separated into five purposes:
Implementing the PropertyChangeSupport listener management API
The PropertyChangeSupport API provides mechanisms for managing property change listeners and for sending property change notifications. PropertyChangeProvider is an interface that ensures implementations implement the basic methods allowing a listener to be added or removed and for a listener to listen to all changes or only to specific changes. Subclasses of PropertyChangeProvider in this package, principally Bean and PropertyChangeSupport, provide simple concrete implementations of that interface that can be built upon.
Implementing the VetoableChangeSupport listener management API
The VetoableChangeSupport API provides mechanisms for managing property change listeners that can veto a property change and for sending property change notifications that can be vetoed. VetoableChangeProvider is an interface that ensures implementations implement the basic methods allowing a listener to be added or removed and for a listener to listen to all changes or only to specific changes. Subclasses of VetoableChangeProvider in this package, principally ConstrainedBean, ConstrainedArbitraryBean, and VetoableChangeSupport provide simple concrete implementations of that interface that can be built upon.
Implementing support for arbitrary properties
A number of JMRI objects support the addition of user-defined properties that are unknown until runtime. These properties can be added, changed, or removed by user-defined scripts or other means. ArbitraryPropertySupport is an interface that ensures implementations implement the basic methods for adding, removing, changing, and discovering those properties. Subclasses of ArbitraryPropertySupport in this package, principally ArbitraryBean and ConstrainedArbitraryBean, provide simple concrete implementations of that interface that can be built upon.
Provide basic implementations of specific types of Beans
Extend Beans introspection tools
BeanUtil provides support for setting, getting, and discovering JMRI arbitrary properties.