protected void fireItemChanged(E prevItem) { if (!listenersEnabled) { return; } ItemChangeEvent<E> itemChangeEvent = new ItemChangeEvent<>(this, prevItem, getItemOrNull()); log.trace("itemChanged: {}", itemChangeEvent); events.publish(ItemChangeEvent.class, itemChangeEvent); }