Component implements HasElement, AttachNotifier, DetachNotifier { public static <T extends Component> T from(Element element, Class<T> componentType) { return ComponentUtil.componentFromElement(element, componentType, true); } protected  Component(); protected  Component(Element element); @Override Element getElement(); Optional<Component> getParent(); Stream<Component> getChildren(); Optional<UI> getUI(); void setId(String id); Optional<String> getId(); boolean isAttached(); static T from(Element element,
            Class<T> componentType); void setVisible(boolean visible); boolean isVisible(); void onEnabledStateChanged(boolean enabled); String getTranslation(String key, Object... params); String getTranslation(String key, Locale locale, Object... params);  }
@Test(expected = IllegalArgumentException.class) public void mapToNullComponentType() { Component.from(new Element("div"), null); }
@Test(expected = IllegalArgumentException.class) public void mapFromNullElement() { Component.from(null, TestButton.class); }