1 package com.opencsv.processor; 2 3 /** 4 * This is the interface for processors for an array of {@link String}s read by 5 * the {@link com.opencsv.CSVReader} <em>before</em> they are validated. 6 * <p>This should only be used if you have a very good understanding and full 7 * control of the data being processed or something you want applied to every 8 * column in the row.</p> 9 * <p>WARNING - using a processor can change the string in ways that could make 10 * it impossible to be processed or make it into a different format than what 11 * you are expecting based on the settings of the parser and reader. So great 12 * care must be taken when creating and using a RowProcessor.</p> 13 * <p>NOTE - Because of the potential problems a bad processor can cause we 14 * will close down any bug reports created for opencsv where a RowProcessor is 15 * involved with the recommendation they be reopened as a support request.</p> 16 * 17 * @author Scott Conway 18 * @since 5.0 19 */ 20 public interface RowProcessor { 21 22 /** 23 * Method that contains the code that will transform a single column/element. 24 * While not called directly by opencsv it is in the interface to provide an easy way to test 25 * if the processor is functioning properly. 26 * 27 * @param column {@link String} to be processed 28 * @return The processed {@link String} 29 */ 30 String processColumnItem(String column); 31 32 /** 33 * Method that will process the entire row. 34 * 35 * @param row Array of {@link String}s to be processed 36 */ 37 void processRow(String[] row); 38 }