-
Language:
English
-
Language:
English
Red Hat Training
A Red Hat training course is available for Red Hat Fuse
2.7. Configuring the CSV Reader for Record Sets
- To configure a Smooks instance with a CSV reader to read a person record set, use the code below. It will bind the records to a list of person instances.
Smooks smooks = new Smooks(); smooks.setReaderConfig(new CSVReaderConfigurator("firstname,lastname,gender,age,country") .setBinding(new CSVBinding("people", Person.class, CSVBindingType.LIST))); JavaResult result = new JavaResult(); smooks.filterSource(new StreamSource(csvReader), result); List<Person> people = (List<Person>) result.getBean("people");
NoteYou can also optionally configure the Java Bean. The Smooks instance could instead (or additionally) be configured programmatically to use other visitor implementations to process the CSV record set. - To bind the CSV's records to a list or map of a Java type that reflects the data in your CSV records, use the
CSVListBinder
orCSVMapBinder
classes:// Note: The binder instance should be cached and reused... CSVListBinder binder = new CSVListBinder("firstname,lastname,gender,age,country", Person.class); List<Person> people = binder.bind(csvStream); CSVMapBinder: // Note: The binder instance should be cached and reused... CSVMapBinder binder = new CSVMapBinder("firstname,lastname,gender,age,country", Person.class, "firstname"); Map<String, Person> people = binder.bind(csvStream);
If you need more control over the binding process, revert back to using the lower-level APIs.