Бинди paddingChar

В моей модели Bindy я хотел бы установить paddingChar для одного поля. Я видел в документации, что с записью @Fixed-length я могу добавить атрибут paddingChar, но с @CsvRecord это кажется невозможным?

Этот код не заполняет обязательное поле «0»:

@CsvRecord(separator = ";", generateHeaderColumns=true)
public class Unity{

@DataField(pos = 1, length = 3, paddingChar = '0')  String mandant;
...

person Nicolas Hauzaree    schedule 04.07.2014    source источник


Ответы (1)


Согласно документации Camel, вы можете использовать атрибут pattern для Double, Integer, Float, Short, поля Long и BigDecimal. Формат определяется в соответствии с java.text.DecimalFormat. :

@DataField(pos = 1, pattern = "000")
Float mandant;

ИЗМЕНИТЬ:

pattern игнорируется (по крайней мере, для Camel 2.13.1), если локаль не установлена ​​(своего рода ошибка или, по крайней мере, недокументированная функция...). Таким образом, сделайте следующее:

final BindyCsvDataFormat bindy = new BindyCsvDataFormat(Unity.class);
bindy.setLocale(Locale.US.getISO3Country());

ИЗМЕНИТЬ:

Я открыл задачу Jira, так как думаю, что это должно быть исправлено: CAMEL-7578

ИЗМЕНИТЬ:

CAMEL-7578 исправлен для версий Camel 2.12.5, 2.13.3 и 2.14.0.

person Peter Keller    schedule 04.07.2014