У меня есть следующий класс сущностей
public class Company {
private Map<Locale, String> name;
/* Other fields, getters, setters */
}
И следующий класс DTO
public class CompanyHeader {
private String name;
/* Other fields, getters, setters */
}
Итак, моя сущность содержит имена для разных языков, и я хочу отобразить ее для данногоLocale
Вот мой класс mapper
@Mapper
public interface CompanyMapper {
CompanyHeader entityToHeader(Company company, Locale locale);
@Named("getByLocale")
default String getValueByLocale(Map<Locale, String> map, Locale locale) {
return map.get(locale);
}
}
А теперь мой вопрос: как мне аннотировать мой метод отображения, чтобы он понимал company
как мой исходный объект, getValueByLocale
метод в качестве метода отображения для поля name
и locale
в качестве параметра для метода getValueByLocale
?
Вот как я использую свой метод отображения извне
public Page<CompanyHeader> getCompanies(CompanyFilter companyFilter, Locale locale) {
Page<Company> companies = getCompanies(companyFilter);
Page<CompanyHeader> headers = companies.map(company -> companyMapper.entityToHeader(company, locale));
return headers;
}