Implementation
The framework provides two implementations of this service, both to allow objects implementing HasCommandDto to be converted into serializable CommandDtos, in other words XML.
The implementations are:
-
o.a.c.applib.services.commanddto.conmap.ContentMappingServiceForCommandDtowill map any single instance of aHasCommandDtointo aCommandDtoXML document -
o.a.c.applib.services.commanddto.conmap.ContentMappingServiceForCommandsDtowill map a list ofHasCommandDtos into aCommandsDtoXML document, and will wrap any single instance of aCommandWithDtointo a singleton list and thence into aCommandsDtoXML document.
If the action invocation or property edit represent provides an implementation of a CommandDtoProcessor (by way of @Action#commandDtoProcessor() or @Property#commandDtoProcessor()) then this is also called to post-process the persisted CommandDto if required.
A typical use case for this is to dynamically add in serialized Blobs or Clobs, the values of which are not captured by default in CommandDto.
To support the writing of custom implementations of this interface, the framework also provides ContentMappingService.Util which includes a couple of convenience utilities:
public static class Util {
public static String determineDomainType(
final List<MediaType> acceptableMediaTypes) { /* ... */ }
public static boolean isSupported(
final Class<?> clazz,
final List<MediaType> acceptableMediaTypes) { /* ... */ }
}