Transforms
The Juneau serializers and parsers can be configured on how to handle POJOs through the use of Transforms.
(See {@doc juneau-marshall.Transforms Transforms})
Transforms are associated serializers and parsers registered on a REST resource via the following:
- {@link oajr.annotation.RestResource#beanFilters()}
- {@link oajr.annotation.RestResource#pojoSwaps()}
- {@link oajr.annotation.RestMethod#beanFilters()}
- {@link oajr.annotation.RestMethod#pojoSwaps()}
- {@link oajr.RestContextBuilder#beanFilters(Object...)}
- {@link oajr.RestContextBuilder#pojoSwaps(Object...)}
// Servlet with transforms applied
@RestResource(
pojoSwaps={
// Calendars should be serialized/parsed as ISO8601 date-time strings
CalendarSwap.DEFAULT_ISO8601DT.class,
// Byte arrays should be serialized/parsed as BASE64-encoded strings
ByteArrayBase64Swap.class
},
beanFilters={
// Subclasses of MyInterface will be treated as MyInterface objects.
// Bean properties not defined on that interface will be ignored.
}
)
public MyRestServlet extends BasicRestServlet {...}
The programmatic equivalent to this is:
// Servlet with properties applied
@RestResource(...)
public MyRestServlet extends BasicRestServlet {
public MyRestServlet(RestContextBuilder builder) {
builder
.pojoSwaps(
CalendarSwap.DEFAULT_ISO8601DT.class,
ByteArrayBase64Swap.class
)
.beanFilters(MyInterface.class);
}
}