Имя метода проверки присутствия источника в MapStruct - PullRequest
0 голосов
/ 22 апреля 2020

можно ли создать собственное имя метода «проверки присутствия», являясь методом самого свойства, а не объекта-владельца?

Я знаю, что могу использовать hasProperty () методы проверить наличие значения ... https://mapstruct.org/documentation/stable/reference/html/#source -presence-check

, но с помощью Optional или JsonNullable (из OpenApi nonullable) этот метод проверки находится на самом свойстве, а не на владеющий объект ...: - (

Я могу сопоставить JsonNullable или Optional, легко 'используя' или расширяя простой пользовательский Mapper

@Mapper
public class JsonNullableMapper {

    public <T> T fromJsonNullable(final JsonNullable<T> jsonNullable) {
        return jsonNullable.orElse(null);
    }

    public <T> JsonNullable<T> asJsonNullable(final T nullable) {
        return nullable != null ? JsonNullable.of(nullable) : JsonNullable.undefined();
    }

}

, чего я хотел бы достичь, что-то вроде этого как «проверка присутствия»:

if(source.getProperty().isPresent()) {
    target.set(customMapper.map(source.getProperty()));
}

Кто-нибудь нашел решение для этого?

Спасибо и всего наилучшего

1 Ответ

0 голосов
/ 26 апреля 2020

Ответ, к сожалению, прямой нет.

Это невозможно в текущей версии MapStruct (1.3.1final), и его нет в шорт-листе для 1.4.0. Вы можете открыть вопрос о репозитории MapStruct git в виде запроса объекта.

...