private void changeValue(E newElement) { Boolean oldValue = get(); if (newElement != null) { valueElement = newElement; // It's a positive element if it has the right tagname and does not have // value = false. Note, absence of attributes is interpreted as a positive // element. value = !FALSE.equals(getDocument().getAttribute(valueElement, valueAttr)); } else { valueElement = null; value = null; } Boolean newValue = get(); maybeTriggerOnValueChanged(oldValue, newValue); }