// Path: HybridMenu-addon/src/main/java/kaesdingeling/hybridmenu/data/interfaces/MenuComponent.java
// public interface MenuComponent<T extends Component> extends Component {
// 	public <C extends MenuComponent<?>> C add(C c);
// 	public <C extends MenuComponent<?>> C addAsFirst(C c);
// 	public <C extends MenuComponent<?>> C addAt(C c, int index);
// 	public int count();
// 	public <C extends MenuComponent<?>> T remove(C c);
// 	public List<MenuComponent<?>> getList();
// 	public String getRootStyle();
// }
// 
// Path: HybridMenu-addon/src/main/java/kaesdingeling/hybridmenu/utils/Utils.java
// public class Utils {
// 	public static <C extends MenuComponent<?>> C setDefaults(C c) {
// 		c.setPrimaryStyleName(c.getRootStyle());
// 		return c;
// 	}
// 	
// 	public static <C extends MenuComponent<?>> C setTopMenuDefaults(C c) {
// 		if (c.getCaption() != null && !c.getCaption().trim().isEmpty()) {
// 			c.setCaption(null);
// 		}
// 		c.setPrimaryStyleName(c.getRootStyle());
// 		return c;
// 	}
// }


import java.util.ArrayList;
import java.util.List;
import com.vaadin.ui.Component;
import com.vaadin.ui.HorizontalLayout;
import kaesdingeling.hybridmenu.data.interfaces.MenuComponent;
import kaesdingeling.hybridmenu.utils.Utils;
				remove(menuComponent);
			}
		}
		return this;
	}

	public <C extends MenuComponent<?>> C add(C c) {
		addComponent(Utils.setDefaults(c));
		return c;
	}
	
	@Override
	public <C extends MenuComponent<?>> C addAsFirst(C c) {
		addComponentAsFirst(Utils.setDefaults(c));
		return c;
	}

	@Override
	public <C extends MenuComponent<?>> C addAt(C c, int index) {
		addComponent(Utils.setDefaults(c), index);
		return c;
	}

	@Override
	public int count() {
		return getList().size();
	}

	@Override
	public <C extends MenuComponent<?>> BreadCrumbs remove(C c) {
// Path: HybridMenu-addon/src/main/java/kaesdingeling/hybridmenu/data/interfaces/MenuComponent.java
// public interface MenuComponent<T extends Component> extends Component {
// 	public <C extends MenuComponent<?>> C add(C c);
// 	public <C extends MenuComponent<?>> C addAsFirst(C c);
// 	public <C extends MenuComponent<?>> C addAt(C c, int index);
// 	public int count();
// 	public <C extends MenuComponent<?>> T remove(C c);
// 	public List<MenuComponent<?>> getList();
// 	public String getRootStyle();
// }
// 
// Path: HybridMenu-addon/src/main/java/kaesdingeling/hybridmenu/utils/Utils.java
// public class Utils {
// 	public static <C extends MenuComponent<?>> C setDefaults(C c) {
// 		c.setPrimaryStyleName(c.getRootStyle());
// 		return c;
// 	}
// 	
// 	public static <C extends MenuComponent<?>> C setTopMenuDefaults(C c) {
// 		if (c.getCaption() != null && !c.getCaption().trim().isEmpty()) {
// 			c.setCaption(null);
// 		}
// 		c.setPrimaryStyleName(c.getRootStyle());
// 		return c;
// 	}
// }


// Path: HybridMenu-addon/src/main/java/kaesdingeling/hybridmenu/components/BreadCrumbs.java
import java.util.ArrayList;
import java.util.List;
import com.vaadin.ui.Component;
import com.vaadin.ui.HorizontalLayout;
import kaesdingeling.hybridmenu.data.interfaces.MenuComponent;
import kaesdingeling.hybridmenu.utils.Utils;

				remove(menuComponent);
			}
		}
		return this;
	}

	public <C extends MenuComponent<?>> C add(C c) {
		addComponent(Utils.setDefaults(c));
		return c;
	}
	
	@Override
	public <C extends MenuComponent<?>> C addAsFirst(C c) {
		addComponentAsFirst(Utils.setDefaults(c));
		return c;
	}

	@Override
	public <C extends MenuComponent<?>> C addAt(C c, int index) {
		addComponent(Utils.setDefaults(c), index);
		return c;
	}

	@Override
	public int count() {
		return getList().size();
	}

	@Override
	public <C extends MenuComponent<?>> BreadCrumbs remove(C c) {
		removeComponent(c);