package co.codewizards.cloudstore.core.bean; import java.beans.PropertyChangeListener; public class PropertyChangeListenerUtil { private PropertyChangeListenerUtil() { } public static WeakPropertyChangeListener addWeakPropertyChangeListenerNonTypeSafe(Object bean, Object property, PropertyChangeListener listener) { final WeakPropertyChangeListener weakListener = new WeakPropertyChangeListener(bean, property, listener); weakListener.addPropertyChangeListener(); return weakListener; } public static <P extends PropertyBase, B extends Bean<P>> WeakPropertyChangeListener addWeakPropertyChangeListener(B bean, P property, PropertyChangeListener listener) { final WeakPropertyChangeListener weakListener = new WeakPropertyChangeListener(bean, property, listener); weakListener.addPropertyChangeListener(); return weakListener; } public static WeakPropertyChangeListener addWeakPropertyChangeListener(Object bean, PropertyChangeListener listener) { final WeakPropertyChangeListener weakListener = new WeakPropertyChangeListener(bean, null, listener); weakListener.addPropertyChangeListener(); return weakListener; } }