@Override public V get() { maybeInitCurrentValue(); return currentValue; }
/** * Sets the current value to be provided by a canonical element and fires * events. * * @param newCurrentElement new value-providing element, or null; */ private void changeCurrentValue(Doc.E newCurrentElement) { assert currentElement != newCurrentElement; maybeInitCurrentValue(); V oldValue = currentValue; currentElement = newCurrentElement; currentValue = null; maybeInitCurrentValue(); maybeTriggerOnValueChanged(oldValue, currentValue); }