/*******************************************************************************
* Copyright (c) quickfixengine.org All rights reserved.
*
* This file is part of the QuickFIX FIX Engine
*
* This file may be distributed under the terms of the quickfixengine.org
* license as defined by quickfixengine.org and appearing in the file
* LICENSE included in the packaging of this file.
*
* This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING
* THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A
* PARTICULAR PURPOSE.
*
* See http://www.quickfixengine.org/LICENSE for licensing information.
*
* Contact ask@quickfixengine.org if any conditions of this licensing
* are not clear to you.
******************************************************************************/
package quickfix.field.converter;
import quickfix.FieldConvertError;
/**
* Converts between a boolean and a string.
*/
public class BooleanConverter {
private static final String NO = "N";
private static final String YES = "Y";
/**
* Converts a boolean to a String.
*
* @param b the boolean value
* @return "Y" for true and "N" for false.
*/
public static String convert(boolean b) {
return b ? YES : NO;
}
/**
* Converts a String value to a boolean.
*
* @param value the String value to convert
* @return true if "Y" and false if "N"
* @throws FieldConvertError raised for any value other than "Y" or "N".
*/
public static boolean convert(String value) throws FieldConvertError {
if (YES.equals(value)) {
return true;
} else if (NO.equals(value)) {
return false;
} else {
throw new FieldConvertError("invalid boolean value: " + value);
}
}
}