class MenuItemFactory {

    @SuppressWarnings("unchecked")
    public <T extends MenuItemDividerView> MenuItemViewHolder<T> makeMenuItemDivider() {
        final MenuItemView _view = menuItemViewProducer.select(new MenuItemDivider() {
            @Override
            public Class<? extends Annotation> annotationType() {
                return MenuItemDivider.class;
            }
        }).get();
        final T view = (T) _view;
        final MenuItem item = MenuFactory.newTopLevelCustomMenu(new MenuFactory.CustomMenuBuilder() {

            @Override
            public void push(final MenuFactory.CustomMenuBuilder element) {

            }

            @Override
            public MenuItem build() {
                final BaseMenuCustom<IsWidget> cmdItem = new BaseMenuCustom<IsWidget>() {

                    @Override
                    public IsWidget build() {
                        return ElementWrapperWidget.getWidget(view.getElement());
                    }
                };

                return cmdItem;
            }
        }).endMenu().build().getItems().get(0);

        return new MenuItemViewHolder<>(item,
                                        view);
    }

    @Inject public  MenuItemFactory(final @Any ManagedInstance<MenuItemView> menuItemViewProducer);

}