@Setter
public class BaseUpdateEmployeeMapper extends BaseDesktopMapper<Source, Target> {
@Named("isStringNotNullOrEmpty")
public boolean isStringNotNullOrEmpty(String input) {
return StringUtils.isNotEmpty(input);
}
}
@Mapper
public abstract class EmployeeMapper extends BaseMapper {
@Mappings({
@Mapping(source="gender", target="gender", conditionQualifiedByName="isStringNotNullOrEmpty", qualifiedByName="toGender"),
public abstract Target transformSource(Source employee);
}
@Generated(
value = "org.mapstruct.ap.MappingProcessor",
date = "2024-08-12T21:14:39+0530",
comments = "version: 1.5.5.Final, compiler: javac, environment: Java 11.0.23 (Homebrew)"
)
public class Target extends EmployeeMapper {
@Override
public Target transformSource(Source employee) {
if ( employee == null ) {
return null;
}
Target.Builder target = Target.newBuilder();
target.gender( toGender( employee.getGender() ) );
return target.build();
}
}
I want to keep a null and empty check on string to avoid mapping source gender to target gender
How to fix this ? Please help
I am expecting to be able generate Implementation class code with isStringNotNullOrEmpty if check before toGender() but only toGender is getting applied for mapping employee gender.