code: public void addValueChangeListener(
              final AttributeValueChangeListener valueChangeListener) {
          if (valueChangeListeners == null) {
              synchronized (this) {
                  if (valueChangeListeners == null) {
                      valueChangeListeners = new LinkedHashSet<>();
                  }
              }
          }
  
          valueChangeListeners.add(valueChangeListener);
      }
docs: adds value change lister which will be invoked when the value changed
  
  @param valueChangeListener
  @since 2.0.0
  @author WFF