ModelMapper с объектами за интерфейсом
У меня есть типы Entity и DTO оба за тем же интерфейсом, например:
public class CompanyDto implements Company {
private String test;
List<Project> projects;
}
public class CompanyEntity implements Company {
private String test;
private List<Project> projects;
}
public interface Company {
String getTest();
List<Project> getProjects();
}
public interface Project {
String getFoo();
}
Когда я просто использую способ конвертации по умолчанию, он не конвертирует Список проектов. Поскольку они находятся за интерфейсом, это работает, когда я не помещаю их за интерфейс.
Поэтому я подумал, что мне нужно создать собственный конвертер, например так:
Converter<List<CompanyEntity>, List<CompanyDto>> converter = new Converter<List<CompanyEntity>, List<CompanyDto>>() {
public List<CompanyDto> convert(MappingContext<List<CompanyEntity>, List<CompanyDto>> context) {
// CONVERT
}
};
Но я застрял здесь, потому что назначение всегда нулевое в контексте. Нет ли другого способа просто указать CompanyEntity для CompanyDto один раз, чтобы, даже когда они находятся в списке, он просто работал?