class BindingContext implements UiUpdateObserver {

    public void removeBindingsForComponent(Object uiComponent) {
        bindings.remove(uiComponent);
        UiFramework.getChildComponents(uiComponent)
                .iterator()
                .forEachRemaining(this::removeBindingsForComponent);
        getBindingStream()
                .filter(BindingContext.class::isInstance)
                .map(BindingContext.class::cast)
                .forEach(bc -> bc.removeBindingsForComponent(uiComponent));
    }

    public  BindingContext();
    public  BindingContext(String contextName);
    public  BindingContext(String contextName, PropertyBehaviorProvider behaviorProvider,
            Handler afterUpdateHandler);
    public  BindingContext(String contextName, PropertyBehaviorProvider behaviorProvider,
            PropertyDispatcherFactory dispatcherFactory, Handler afterUpdateHandler);

}