Headless Server Developer Manual / Version 2404
Table Of Contents
Implementations of ModelMapper
are used as an additional conversion layer to convert the types delivered by a DataFetcher
into a type, which ideally can be processed directly by the GraphQL runtime.
Technically a ModelMapper is a Java Function with the
signature Function<T, Optional<R>>.
All ModelMapper instances are created as regular Spring beans which are then consumed and invoked by
the CompositeModelMapper.
During runtime, the CompositeModelMapper tries to find an appropriate ModelMapper
for a resolved property and applies it for type conversion.
Headless Server features two ModelMapper implementations out of the box, the
richTextModelMapper and the dateModelMapper.
Both are created in CaasConfig.
The FilteringModelMapper
is the so called rootModelMapper. As the name rootModelMapper
implies, FilteringModelMapper acts as the first ModelMapper in the
invocation chain of ModelMapper instances.
FilteringModelMapper has two tasks. It invokes a list of Predicates
to filter the resolved content, then it delegates the filter result to the CompositeModelMapper
which in turn invokes the type conversion with a suitable ModelMapper.


