/** * Initializes the current value without firing events. */ private void maybeInitCurrentValue() { if (currentValue == null) { currentValue = (currentElement != null) ? valueFactory.adapt(getEventRouter(), currentElement) : null; } }
/** * Builds an attribute map for an abstract initial state via a * {@link Factory} which can build an {@link Initializer}. * * @param initialState abstract initial state * @param initializerFactory translates initial state into an initializer * @return an attribute map initialized with the initial state */ public static <I> Map<String, String> buildAttributes(I initialState, Factory<?, ?, I> initializerFactory) { Map<String, String> attrs = CollectionUtils.newHashMap(); initializerFactory.createInitializer(initialState).initialize(attrs); return attrs; }
@Override public void onElementAdded(E element) { assert getDocument().getParentElement(element).equals(parent) : "Received event for unrelated element"; if (childTag.equals(getDocument().getTagName(element))) { T child = factory.adapt(router, element); T sibling = getPreviousKnownValue(element); orderedValues.add(sibling == null ? 0 : orderedValues.indexOf(sibling) + 1, child); elementToValue.put(element, child); valueToElement.put(child, element); fireElementAdded(child); } }