class ComponentFactory {

  public Component createComponent() {
    Component component = new DefaultComponent();
    for (ComponentDecorator componentDecorator : componentDecorators) {
      component = componentDecorator.decorate(component);
    }
    return component;
  }

  @Inject public  ComponentFactory(final Set<ComponentDecorator> componentDecorators);

}