001package co.codewizards.cloudstore.core.bean;
002
003import java.beans.PropertyChangeListener;
004
005public class PropertyChangeListenerUtil {
006
007        private PropertyChangeListenerUtil() {
008        }
009
010        public static WeakPropertyChangeListener addWeakPropertyChangeListenerNonTypeSafe(Object bean, Object property, PropertyChangeListener listener) {
011                final WeakPropertyChangeListener weakListener = new WeakPropertyChangeListener(bean, property, listener);
012                weakListener.addPropertyChangeListener();
013                return weakListener;
014        }
015
016        public static <P extends PropertyBase, B extends Bean<P>> WeakPropertyChangeListener addWeakPropertyChangeListener(B bean, P property, PropertyChangeListener listener) {
017                final WeakPropertyChangeListener weakListener = new WeakPropertyChangeListener(bean, property, listener);
018                weakListener.addPropertyChangeListener();
019                return weakListener;
020        }
021
022        public static WeakPropertyChangeListener addWeakPropertyChangeListener(Object bean, PropertyChangeListener listener) {
023                final WeakPropertyChangeListener weakListener = new WeakPropertyChangeListener(bean, null, listener);
024                weakListener.addPropertyChangeListener();
025                return weakListener;
026        }
027}