ElementPropertyMap extends AbstractPropertyMap { public void setUpdateFromClientFilter( SerializablePredicate<String> updateFromClientFilter) { this.updateFromClientFilter = updateFromClientFilter; } ElementPropertyMap(StateNode node); Runnable deferredUpdateFromClient(String key, Serializable value); @Override void setProperty(String name, Serializable value,
            boolean emitChange); void setProperty(String name, Serializable value); Registration addPropertyChangeListener(String name,
            PropertyChangeListener listener); void setUpdateFromClientFilter(
            SerializablePredicate<String> updateFromClientFilter); ElementPropertyMap resolveModelMap(String modelPath); ModelList resolveModelList(String modelPath); static ElementPropertyMap getModel(StateNode node);  }
@Test public void deferredUpdateFromClient_filterDisallowUpdate_eventIsSynchronized() throws PropertyChangeDeniedException { ElementPropertyMap map = createSimplePropertyMap(); Element.get(map.getNode()).addEventListener("dummy", event -> { }).synchronizeProperty("foo"); map.setUpdateFromClientFilter(key -> false); assertDeferredUpdate_putResult(map, "foo"); }