Interface ViewElementBuilder<T extends ViewElement>
- All Known Implementing Classes:
AbstractNodeViewElementBuilder
,AbstractVoidNodeViewElementBuilder
,ContainerViewElementBuilder
,ContainerViewElementBuilderSupport
,CssWebResourceBuilder
,JavascriptWebResourceBuilder
,LinkWebResourceBuilder
,MetaWebResourceBuilder
,NodeViewElementBuilder
,TextViewElementBuilder
,ViewElementBuilderSupport
,ViewElementGeneratorBuilder
,VoidNodeViewElementBuilder
,WebResourceReferenceCollection
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
Base interface to create a single
ViewElement
instance.
Usually used to build an entire hierarchy of elements by calling build(ViewElementBuilderContext)
on the
top-most element. Building a ViewElement
requires a ViewElementBuilderContext
and often a
single builder context is used to build many elements.
If you call build()
without manually specifying a builder context, a global context will be retrieved
using ViewElementBuilderContext.retrieveGlobalBuilderContext()
and if none is available, a new
DefaultViewElementBuilderContext
will be used instead.
For performance it is often best to manage the lifecycle of a ViewElementBuilderContext
yourself,
so you don't have unnecessary creation and can optimize contextual data sharing.- Author:
- Arne Vandamme
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic interface
ViewElementBuilder.Wither<T extends ViewElementBuilder>
-
Method Summary
Modifier and TypeMethodDescriptiondefault ViewElementBuilder<T>
andThen
(ViewElementPostProcessor<T> postProcessor) Chain aViewElementPostProcessor
to the result of this builder.default T
build()
Build theViewElement
using the globally availableViewElementBuilderContext
, this will useViewElementBuilderContext.retrieveGlobalBuilderContext()
to get the global context.build
(ViewElementBuilderContext builderContext) Builds the actual element.default ViewElementBuilder<T>
doWith
(ViewElementBuilder.Wither... operations) Deprecated.default <U extends ViewElement>
ViewElementBuilder<U>map
(@NonNull BiFunction<ViewElementBuilderContext, T, U> mappingFunction) Map theViewElement
that this builder returns to another type.default <U extends ViewElement>
ViewElementBuilder<U>Map theViewElement
that this builder returns to another type.static <U extends ViewElement>
ViewElementBuilder<U>of
(Function<ViewElementBuilderContext, U> supplier) static <U extends ViewElement>
ViewElementBuilder<U>default ViewElementBuilder<T>
postProcess
(ViewElementPostProcessor<T> postProcessors) default ViewElementBuilder<T>
postProcess
(Collection<ViewElementPostProcessor<T>> postProcessors)
-
Method Details
-
build
Build theViewElement
using the globally availableViewElementBuilderContext
, this will useViewElementBuilderContext.retrieveGlobalBuilderContext()
to get the global context. If none is returned, a newDefaultViewElementBuilderContext
will be used instead. Use this method sparingly, usually only for the single top-level build of aViewElement
. The creation of aViewElementBuilderContext
can be relatively costly, performance-wise it is usually better if you callbuild(ViewElementBuilderContext)
with a predefined orViewElementBuilderContext
, or at least ensure you have a global context available.- Returns:
- view element
- See Also:
-
build
Builds the actual element.- Parameters:
builderContext
- provides the context for this build event- Returns:
- instance to render the element.
-
andThen
Chain aViewElementPostProcessor
to the result of this builder. This will return a new builder instance that applies the post processor to the element generated.Explicitly supports
null
argument values, which mean do nothing and will actually return the same builder.- Parameters:
postProcessor
- to apply on the builder result- Returns:
- new builder with the post processor chained to it
-
map
default <U extends ViewElement> ViewElementBuilder<U> map(@NonNull @NonNull Function<T, U> mappingFunction) Map theViewElement
that this builder returns to another type. Creates a new builder returning the resulting element. If you need access to theViewElementBuilderContext
usemap(BiFunction)
instead.- Type Parameters:
U
- type of the new element returned- Parameters:
mappingFunction
- to apply to the generated element- Returns:
- new builder instance
- See Also:
-
map
default <U extends ViewElement> ViewElementBuilder<U> map(@NonNull @NonNull BiFunction<ViewElementBuilderContext, T, U> mappingFunction) Map theViewElement
that this builder returns to another type. Creates a new builder returning the resulting element.- Type Parameters:
U
- type of the new element returned- Parameters:
mappingFunction
- to apply to the generated element- Returns:
- new builder instance
- See Also:
-
doWith
Deprecated. -
postProcess
-
postProcess
-
of
-
of
static <U extends ViewElement> ViewElementBuilder<U> of(Function<ViewElementBuilderContext, U> supplier)
-