Как обрабатывать различные записи в файле CSV в Apache Camel Bindy? - PullRequest
1 голос
/ 24 января 2012

Мне нужно иметь возможность конвертировать ниже CSV в объекты.Это возможно с Bindy?

H,header1,01/01/2012
D,test11,1.00,10.00
D,test12,2.00,20.00
D,test13,3.00,30.00
H,header2,01/02/2012
D,test21,1.00,10.00
D,test22,2.00,20.00
D,test23,3.00,30.00

Я создал две модели Header и Detail, и в конце я хочу получить список из: Header, Detail, Detail, Detail, Header, Detail, Detail, Detailобъекты.

Когда я помещаю эти модели в один и тот же пакет и запускаю тест, создается впечатление, что Бинди не может распознать, какая модель является какой-либо, и не может сказать:

java.lang.AssertionError: mock://queue.csv Received message count. Expected: <1> but was: <0>

Это дажевозможно с Бинди?

1 Ответ

0 голосов
/ 25 января 2012

Я на самом деле не думаю, что это возможно из коробки? Как вам понадобится способ (дискриминатор), чтобы определить, является ли строка заголовком или деталью. И это не та функция, которую мы получили прямо сейчас.

Хотя вы можете разделить данные, так что есть один заголовок + количество деталей. Но это повлекло бы за собой наличие нескольких сообщений в Camel.

Однако кажется, что ваша структура довольно проста. Так что использование старого доброго старомодного Java-кода часто делает свое дело.

Однако проект Apache Camel любит вклады, так что не стесняйтесь открывать билет JIRA с этим вариантом использования, а затем добавление функциональности дискриминации было бы хорошим дополнением. Тогда также немного проще обрабатывать записи CSV, которые варьируются от типа к типу. http://camel.apache.org/contributing.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...