Size: a a a

2020 November 19

AE

Alexandr Emelyanov in pro.jvm
тогда мапсракт останется в сторонке от этой проблемы
источник

RS

Ruslan Sinkevich in pro.jvm
может быть 2 вопроса:
1. почему <value/> парсится как пустая строка, а не null и нормальное ли это поведение
2. все же можно ли сделать маппинг для этого поля с пустой строкой
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in pro.jvm
2. Можно, но правильнее исправить косяк в парсинге xml
источник

AE

Alexandr Emelyanov in pro.jvm
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
2. Можно, но правильнее исправить косяк в парсинге xml
+
источник

AE

Alexandr Emelyanov in pro.jvm
вообще маппинг с пустой строкой прост
fun parseDate(strDate: String?) : OffsetDateTime? = strDate?.filter{ it.isEmpty() }?.apply { OffsetDateTime.parse(it)}
источник

LM

Lucas Mabrey in pro.jvm
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
Да не в мапстракте дело. Он же не парсит хмл.
Вопрос в том, чем парсится хмл
Парсится как-то так https://i.imgur.com/yIk3k64.png
источник

L

Loljeene in pro.jvm
Alexandr Emelyanov
вообще маппинг с пустой строкой прост
fun parseDate(strDate: String?) : OffsetDateTime? = strDate?.filter{ it.isEmpty() }?.apply { OffsetDateTime.parse(it)}
ты про qualifiedByName?
источник

AE

Alexandr Emelyanov in pro.jvm
Lucas Mabrey
Парсится как-то так https://i.imgur.com/yIk3k64.png
у jaxb тоже есть настройки парсинга, там можно сделать биндинг и кастомный конвертер. но мой совет - сделать валидацию по xsd и пулять в ответ 400
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in pro.jvm
Alexandr Emelyanov
вообще маппинг с пустой строкой прост
fun parseDate(strDate: String?) : OffsetDateTime? = strDate?.filter{ it.isEmpty() }?.apply { OffsetDateTime.parse(it)}
А теперь повтори это на жабе 🌚
источник

AE

Alexandr Emelyanov in pro.jvm
Loljeene
ты про qualifiedByName?
просто маппер объявляешь тут же и мапстракт подхватит
источник

AE

Alexandr Emelyanov in pro.jvm
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
А теперь повтори это на жабе 🌚
я думал на java, но что то писать много 🌚
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in pro.jvm
Lucas Mabrey
Парсится как-то так https://i.imgur.com/yIk3k64.png
А модель(класс в который парсится хмл) генерилась по схеме или руками писалась?
источник

LM

Lucas Mabrey in pro.jvm
Alexandr Emelyanov
у jaxb тоже есть настройки парсинга, там можно сделать биндинг и кастомный конвертер. но мой совет - сделать валидацию по xsd и пулять в ответ 400
так по xsd проходит валидацию :)
поле там и объявлено как необязательное
источник

LM

Lucas Mabrey in pro.jvm
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
А модель(класс в который парсится хмл) генерилась по схеме или руками писалась?
генерился по схеме
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in pro.jvm
Lucas Mabrey
генерился по схеме
Видимо в схеме косяк или валидации по схеме нет
источник

L

Loljeene in pro.jvm
Alexandr Emelyanov
просто маппер объявляешь тут же и мапстракт подхватит
Хм чет я такого не видел, Если просто @MapperConfig объявить он ведь для всех стрингов будет работать.
Я знаю только через @Named, через аннотацию и через expression варианты
источник

AE

Alexandr Emelyanov in pro.jvm
Lucas Mabrey
генерился по схеме
так сделай биндинги, что бы поле было не строкой, а датой с нужным типом. или там в схеме поле - строка?
источник

LM

Lucas Mabrey in pro.jvm
Alexandr Emelyanov
так сделай биндинги, что бы поле было не строкой, а датой с нужным типом. или там в схеме поле - строка?
да. в схеме строка
источник

AE

Alexandr Emelyanov in pro.jvm
Loljeene
Хм чет я такого не видел, Если просто @MapperConfig объявить он ведь для всех стрингов будет работать.
Я знаю только через @Named, через аннотацию и через expression варианты
так он сделает сначала локальный лукап String -> Date, потом его же по uses, потом сгенерит свой дефолт
источник

LM

Lucas Mabrey in pro.jvm
индусы делали
источник