@DefaultAnnotation(value=edu.umd.cs.findbugs.annotations.NonNull.class) @Copyright(value="Copyright © 2008, Iparelan Solutions, LLC. All rights reserved.")

Package com.iparelan.util.beans

Iparelan JavaBean Utilities
This file is part of Virtual Team Tools.
Copyright © 2008, Iparelan Solutions, LLC.

See:
          Description

Interface Summary
PropertyChangeable The result of applying the "Extract Interface" refactoring to the portion of PropertyChangeSupport concerned with managing listeners.
PropertyChangeSupportFactory Specifies the interface for a factory of PropertyChangeSupport instances.
PropertyFireable The result of applying the "Extract Interface" refactoring to the portion of PropertyChangeSupport concerned with firing property changes.
 

Class Summary
BeanTools This utility class contains JavaBeans convenience algorithms.
BeanTools.NonNullPropertyChangeEventValidator A pre-defined validator for PropertyChangeEvents.
BeanTools.PropertyChangeableProxyInvocationHandler<T extends PropertyChangeable> An InvocationHandler bound to a proxied bean.
PropertyChangeableDecorator Decorates a PropertyChangeable forwarding all method invocations to the wrapped instance.
PropertyChangeSupport An alternative to PropertyChangeSupport with these enhancements: It guarantees that registered listeners do not strongly refer to observed beans (see the reference to the book "Hardcore Java" in the "See Also" section below).
PropertyFireableDecorator Decorates a PropertyFireable forwarding all method invocations to the wrapped instance.
 

Enum Summary
BeanTools.NonNullPropertyChangeEventValidator.ContextIndex Indices of contextual information in the context argument of BeanTools.NonNullPropertyChangeEventValidator.validate(java.beans.PropertyChangeEvent, java.lang.Object...).
 

Package com.iparelan.util.beans Description

Iparelan JavaBean Utilities
This file is part of Virtual Team Tools.
Copyright © 2008, Iparelan Solutions, LLC. All rights reserved.

Virtual Team Tools is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Virtual Team Tools is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with Virtual Team Tools. If not, see <http://www.gnu.org/licenses/>.

This package is motivated by the material in "Hardcore Java," Simmons, Chapter 11, "A Weak Listener." The basic idea is that strong reference loops should be avoided to reduce memory leaks. Unfortunately, such loops are particularly easy to create when registering JavaBeans property event change listeners due to the exclusive use of strong references by the legacy implementation of PropertyChangeSupport.

This package uses the alternative PropertyChangeSupport implementation from the O'Reilly Hardcore Java book through a type-safe decorator. Furthermore, this package incluces several convenience types that decouple the concerns of listener management and event firing. Finally, a dynamic proxy type allows arbitrary beans to be enhanced with added responsibilities of weak reference based PropertyChangeSupport decorator subtypes.

Version:
July 2008
Author:
Greg Mattes


Copyright © 2008 Iparelan Solutions, LLC. All rights reserved.