Add support for custom exception for subclass exhaustive strategy for @SubclassMapping mapping
Use case
Introduce a new feature that can customize the IllegalArgumentException exception thrown, when a unexpected SubClassMapping is encountered.
Like the EnumMapping#unexpectedValueMappingException used to customize EnumMapping exception
Mapping example:
@SubclassMapping(target = GroupSpecificationEntity.class, source = GroupSpecification.class) @SubclassMapping(target = SiteSpecificationEntity.class, source = SiteSpecification.class) LocationSpecificationEntity map(LocationSpecification source);
Generated code:
@Override public Target map(Source source) { if ( source == null ) { return null; } if (source instanceof GroupSpecification) { return groupSpecificationToGroupSpecificationEntity( (GroupSpecification) source ); } else if (source instanceof SiteSpecification) { return siteSpecificationToSiteSpecificationEntity( (SiteSpecification) source ); } else { throw new IllegalArgumentException("Not all subclasses are supported for this mapping. Missing for " + source.getClass()); } }
Generated Code
No response
Possible workarounds
No response
MapStruct Version
Mapstruct 1.6.3