Map the content of a CSV file to a POJO using @annotation and .convertBodyTo()
------------------------------------------------------------------------------

                 Key: CAMEL-398
                 URL: https://issues.apache.org/activemq/browse/CAMEL-398
             Project: Apache Camel
          Issue Type: New Feature
          Components: camel-core
    Affects Versions: 1.4.0
            Reporter: Charles Moulliard


Hi,

It should be nice if in a next relase of Camel, it will be possible to map the 
content of a CSV file to a POJO using @annotation.

For the moment, I use an ArrayList + iterator (see code hereafter) to achieve 
the extraction of the content but I'm sure that we can simplify this code using 
@Annotation
and the following action (.convertBodyTo(Order<List>) by example.

Current situation

Camel route

from("file:///c:/temp/test?noop=true")
.unmarshal().csv()
.to("bean:converter?methodName=TransformMessage"); --> should be replaced by 
something like .convertBodyTo(Order<List>)

Converter class

        public void TransformMessage(Exchange in) {
                process(in.getIn().getBody(List.class));
        }

        @SuppressWarnings("unchecked")
        private void process(List messages) {
               
                // Iterate through the list of messages
                for (Iterator<ArrayList> it = messages.iterator(); 
it.hasNext();) {

                        // Split the content of the message into field
                        message = it.next();
                        field = (String[]) message.toArray();

                        order = new Order();
                        order.setId(Integer.valueOf(field[0]).intValue());
                        order.setBank(field[1]);
                        order.setAmountFrom(Double.parseDouble(field[2]));
                        order.setAmountTo(Double.parseDouble(field[3]));
                        order.setOrderInstruction(field[4].trim());
                        this.orderService.createOrder(order);

                }
        }

Regards,

Charles


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to