code: protected void executeCellProcessors(final List<Object> destination, final List<?> source,
              final CellProcessor[] processors, final CsvContext context) {
          
          destination.clear();
          
          final SuperCsvRowException rowException = new SuperCsvRowException(
                  String.format("row (%d) has errors column", context.getRowNumber()), context);
          for( int i = 0; i < source.size(); i++ ) {
              
              try {
                  context.setColumnNumber(i + 1); // update context (columns start at 1)
                  
                  if( processors[i] == null ) {
                      destination.add(source.get(i)); // no processing required
                  } else {
                      destination.add(processors[i].execute(source.get(i), context)); // execute the processor chain
                  }
              } catch(SuperCsvCellProcessorException e) {
                  rowException.addError(e);
                  
                  // 各カラムでエラーがあっても、後の入力値検証で処理を続けるために、仮に値を設定する。
                  destination.add(source.get(i));
                  
              } catch(SuperCsvException e) {
                  throw e;
              }
          }
          
          if(rowException.isNotEmptyColumnErrors()) {
              throw rowException;
          }
          
      }
docs: 行の各カラムの値に対して、CellProcessorを適用します。
  
  @param destination
  @param source
  @param processors
  @param context