class TreeItem extends Composite {

    @SuppressWarnings("unchecked")
    public I getItemByUuid(final String uuid) {
        if (getUuid().equals(uuid)) {
            return (I) this;
        }
        final I[] selectedItem = (I[]) new TreeItem[1];
        getChildren().forEach(c -> {
            if (selectedItem[0] == null) {
                selectedItem[0] = (I) c.getItemByUuid(uuid);
            }
        });
        return selectedItem[0];
    }

    public  TreeItem(final Type type,
                    final String value,
                    final String label,
                    final IsWidget icon);
      TreeItem(final Type type,
             final String value,
             final String label,
             final IsWidget icon,
             final Supplier<FlowPanel> contentProvider
    );

}