class CompositeAspectDefinition implements LinkkiAspectDefinition {

    @Override
    public void initModelUpdate(PropertyDispatcher propertyDispatcher,
            ComponentWrapper componentWrapper,
            Handler modelUpdated) {
        aspectDefinitions
                .stream()
                .filter(d -> d.supports(componentWrapper.getType()))
                .forEach(lad -> {
                    // CSOFF: IllegalCatch
                    try {
                        lad.initModelUpdate(propertyDispatcher, componentWrapper, modelUpdated);
                    } catch (RuntimeException e) {
                        throw new LinkkiBindingException(
                                e.getMessage() + " while init model update of " + lad.getClass().getSimpleName()
                                        + " for " + componentWrapper + " <=> " + propertyDispatcher,
                                e);
                    }
                    // CSON: IllegalCatch
                });
    }

    public  CompositeAspectDefinition(@NonNull LinkkiAspectDefinition... aspectDefinitions);
    public  CompositeAspectDefinition(List<LinkkiAspectDefinition> aspectDefinitions);

}