package xapi.ui.autoui.api; public interface UiRenderer <T> { /** * Called when a renderer must render an object into a UserInterface. * <br/> * Calls to this method are guarded by {@link UiRendererSelector#useRenderer(UserInterface, UiRenderer, String, Object)}}, * which can be used to filter incompatible UserInterfaces and UiRenderers. * <br/> * The {@link UiRendererSelector} used will be the one paired with the specified UiRenderer * inside of a {@link UiRendererOptions} annotation. * * @param ui -> The UserInterface to render into. * @param ctx -> The {@link UiRenderingContext} containing the utilities needed to render the data * @param path -> The path of the data to render; * @param data -> The data to render * data can be retrieved from the data param using the {@link BeanValueProvider} found in the {@link UiRenderingContext#getBeanValueProvider()}. * @return -> this, for chaining, or a copy, for mutating. */ UiRenderer<T> renderInto(UserInterface<?> ui, UiRenderingContext ctx, String path, T data); }