Package org.mapstruct

Annotation Type TargetType


  • @Target(PARAMETER)
    @Retention(CLASS)
    public @interface TargetType
    Declares a parameter of a custom mapping method to be populated with the target type of the mapping.

    Not more than one parameter can be declared as TargetType and that parameter needs to be of type Class (may be parameterized), or a super-type of it.

    Example:

    
     public class EntityFactory {
        public <T extends BaseEntity> T createEntity(@TargetType Class<T> entityClass) {
             return // ... custom factory logic
        }
     }
     @Mapper(uses = EntityFactory.class)
     public interface CarMapper {
         CarEntity carDtoToCar(CarDto dto);
     }
     
    
     // generates
     public class CarMapperImpl implements CarMapper {
         private final EntityFactory entityFactory = new EntityFactory();
         @Override
         public CarEntity carDtoToCar(CarDto dto) {
             if ( dto == null ) {
                 return null;
             }
             CarEntity carEntity = entityFactory.createEntity( CarEntity.class );
             return carEntity;
         }
     }
     
    Author:
    Andreas Gudian