Open Source Repository

Home /csv/supercsv-1.52 | Repository Home



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

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

/**
 * Converts a boolean into a formatted string. If you want to convert from a String to a boolean, use the
 * {@link ParseBool} processor.
 * <p>
 * 
 * @since 1.50
 * @author Dominique De Vito
 */
public class FmtBool extends CellProcessorAdaptor implements BoolCellProcessor {

private final String trueValue;
private final String falseValue;

public FmtBool(final String trueValue, final String falseValue) {
  super();
  this.trueValue = trueValue;
  this.falseValue = falseValue;
}

public FmtBool(final String trueValue, final String falseValue, final StringCellProcessor next) {
  super(next);
  this.trueValue = trueValue;
  this.falseValue = falseValue;
}

/**
 * {@inheritDoc}
 */
@Override
public Object execute(final Object value, final CSVContext context) throws SuperCSVException {
  if( value == null ) {
    throw new NullInputException("Input cannot be null on line " + context.lineNumber + " column "
      + context.columnNumber, context, this);
  }
  if( !(value instanceof Boolean) ) {
    throw new ClassCastInputCSVException("the value '" + value + "' is not of type Boolean", context, this);
  }
  String result = ((Boolean) value).booleanValue() ? trueValue : falseValue;
  return next.execute(result, context);
}
}