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.