Open Source Repository

Home /csv/supercsv-1.52 | Repository Home



org/supercsv/cellprocessor/ParseChar.java
package org.supercsv.cellprocessor;

import org.supercsv.cellprocessor.ift.DoubleCellProcessor;
import org.supercsv.cellprocessor.ift.StringCellProcessor;
import org.supercsv.exception.NullInputException;
import org.supercsv.exception.SuperCSVException;
import org.supercsv.util.CSVContext;

/**
 * Convert a string to a char. If the string has a length > 1, then the first character is
 
 @since 1.10
 @author Kasper B. Graversen
 */
public class ParseChar extends CellProcessorAdaptor  implements StringCellProcessor {

public ParseChar() {
  super();
}

public ParseChar(final DoubleCellProcessor next) {
  super(next);
}

/**
 * {@inheritDoc}
 */
@Override
public Object execute(final Object value, final CSVContext context) {
  ifvalue == null ) { throw new NullInputException("Input cannot be null on line " + context.lineNumber + " at column " + context.columnNumber, context, this)}
  final Character result;
  ifvalue instanceof Character ) {
    result = (Charactervalue;
  else ifvalue instanceof String ) {
    final String tmp = (Stringvalue;
    iftmp.length() == ) {
      result = Character.valueOf(tmp.charAt(0));
    else {
      throw new SuperCSVException("Can't convert \"" + value
        "\" to a char. It must have a length of 1 to be a valid char.", context, this);
    }
  else {
    throw new SuperCSVException("Can't convert \"" + value
      "\" to char. Input is not of type Character nor type String, but of type " + value.getClass().getName(),
      context, this);
  }
  
  return next.execute(result, context);
}
}