Hi

I am trying to parse some CSV data. Camel Bindy component seems to be doing
its job well. 
When I am taking the data to a processor to access each Object separately
and do the processing, I see that  Bindy returns a List and the List
contains a Hashmap!!

Is there a way to configure Bindy to return a list of Java Objects instead
of Hashmap?

I did a debug and the screenshot attached. In the debug view, we see that
exchange->in contains a HashMap. 

Can you suggest how can i retrieve the data? If its HashMap, what would be
the keys to retrieve the value? 

<http://camel.465427.n5.nabble.com/file/n5750340/Bindy.jpg> 



My Camel Code is 

*
<beans xmlns="http://www.springframework.org/schema/beans";
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xmlns:amq="http://activemq.apache.org/schema/core";
        xsi:schemaLocation="
       http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
       http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd
       http://activemq.apache.org/schema/core
http://activemq.apache.org/schema/core/activemq-core.xsd";>



        <bean id="bindyDataformat"
                
class="org.apache.camel.dataformat.bindy.csv.BindyCsvDataFormat">
                <constructor-arg value="com.poc.camel.csv.java.bindy" />
        </bean>

        <bean id="csv" class="com.poc.camel.csv.java.bindy.HandleOrderBean" />

        <camelContext xmlns="http://camel.apache.org/schema/spring";>

                <dataFormats>
                        <jaxb id="myJaxb" prettyPrint="true"
contextPath="com.poc.camel.csv.java.bindy" />
                </dataFormats>
                
                        
                
                  <route streamCache="true">
            <from uri="file://C:/Users/Mathews/Desktop/in" />
            <unmarshal ref="bindyDataformat" />
            <to uri="bean:csv" />
         
        </route>
 
        <route>
            <from uri="seda:queue:in" />
            <to uri="log:reached route 2"/>
            <marshal ref="myJaxb" />
            <to uri="file://C:/Users/Mathews/Desktop/out" />
        </route>
                
        </camelContext>

</beans>


*


And Java code is 

*
package com.poc.camel.csv.java.bindy;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.camel.Exchange;
import org.apache.camel.Processor;

public class HandleOrderBean implements Processor {

        
        @SuppressWarnings("unchecked")
        @Override
        public void process(Exchange exchange) throws Exception {
                // TODO Auto-generated method stub

                List list=new ArrayList<Result>();
                
                
                list = (List) exchange.getIn().getBody();
                
                
                System.out.println("Wanna convert things into XML now");
                
                System.out.println("Wanna convert things into XML now");
                /*list.toString();*/
                
                }

        
        
        
        }


*


and My POJO class is

package com.poc.camel.csv.java.bindy;

import java.io.Serializable;

import javax.xml.bind.annotation.XmlRootElement;
import org.apache.camel.dataformat.bindy.annotation.CsvRecord;
import org.apache.camel.dataformat.bindy.annotation.DataField;

@XmlRootElement
@CsvRecord(separator = ",",crlf="WINDOWS",generateHeaderColumns=false)
public class Result implements Serializable{
    
    @DataField(pos = 1)
    private String firstName; 
 
    @DataField(pos = 2)
    private String lastName;
 
    @DataField(pos = 3)
    private String rollNo;
 
    @DataField(pos = 4)
    private String result;

        public String getFirstName() {
                return firstName;
        }

        public void setFirstName(String firstName) {
                this.firstName = firstName;
        }

        public String getLastName() {
                return lastName;
        }

        public void setLastName(String lastName) {
                this.lastName = lastName;
        }

        public String getRollNo() {
                return rollNo;
        }

        public void setRollNo(String rollNo) {
                this.rollNo = rollNo;
        }

        public String getResult() {
                return result;
        }

        public void setResult(String result) {
                this.result = result;
        }

        
        
}



--
View this message in context: 
http://camel.465427.n5.nabble.com/Camel-Bindy-Issues-with-returntype-tp5750340.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to