public void addValueChangeListener(
            final AttributeValueChangeListener valueChangeListener) {
        if (valueChangeListeners == null) {
            synchronized (this) {
                if (valueChangeListeners == null) {
                    valueChangeListeners = new LinkedHashSet<>();
                }
            }
        }

        valueChangeListeners.add(valueChangeListener);
    }
public void addValueChangeListener(
            final AttributeValueChangeListener valueChangeListener) {
        if (valueChangeListeners == null) {
            synchronized (this) {
                if (valueChangeListeners == null) {
                    valueChangeListeners = new LinkedHashSet<>();
                }
            }
        }

        valueChangeListeners.add(valueChangeListener);
    }
public void addValueChangeListener ( final AttributeValueChangeListener valueChangeListener ) { if ( valueChangeListeners == null ) { synchronized ( this ) { if ( valueChangeListeners == null ) { valueChangeListeners = new LinkedHashSet <> ( ) ; } } } valueChangeListeners . add ( valueChangeListener ) ; }
adds value change lister which will be invoked when the value changed

@param valueChangeListener
@since 2.0.0
@author WFF
adds value change lister which will be invoked when the value changed