// Released under the Canoo Webtest license. package com.canoo.webtest.util; import com.canoo.webtest.engine.StepExecutionException; import com.canoo.webtest.steps.Step; import org.apache.commons.lang.StringUtils; /** * Date: May 4, 2005 * @author paulk */ public class ConversionUtil { /** * Convert a string value to a boolean according to ANT defintion of true. If the value is null or empty, return the * specified default value. * * @return parsed value. If value is null or empty, return default value. */ public static boolean convertToBoolean(String value, boolean defaultValue) { if (StringUtils.isNotEmpty(value)) { // isNotBlank? return "yes".equalsIgnoreCase(value) || "true".equalsIgnoreCase(value) || "on".equalsIgnoreCase(value); } return defaultValue; } /** * Convert a string value to an integer. If the value is null, return the specified default value. * * @return parsed value. If value is null return default value. * @throws NumberFormatException */ public static int convertToInt(String value, int defaultValue) { if (value != null) { return Integer.parseInt(value); } return defaultValue; } /** * Convert a string value to a long. If the value is null, return the specified default value. * * @return parsed value. If value is null return default value. * @throws NumberFormatException */ public static long convertToLong(String value, long defaultValue) { if (value != null) { return Long.parseLong(value); } return defaultValue; } /** * Convert a string value to a float. If the value is null, return the specified default value. * * @return parsed value. If value is null return default value. * @throws NumberFormatException */ public static float convertToFloat(String value, float defaultValue) { if (value != null) { return Float.parseFloat(value); } return defaultValue; } /** * Convert a string value to a double. If the value is null, return the specified default value. * * @return parsed value. If value is null return default value. * @throws NumberFormatException */ public static double convertToDouble(String value, double defaultValue) { if (value != null) { return Double.parseDouble(value); } return defaultValue; } /** * Parses a value as integer. * @param property the name of the property (used in the exception's message if parse fails) * @param value the value to parse * @return the parsed int * @throws com.canoo.webtest.engine.StepExecutionException if the value can't be parsed as int */ public static int convertToIntOrReject(final String property, final String value, Step step) throws StepExecutionException { try { return Integer.parseInt(value); } catch (final NumberFormatException nfe) { throw new StepExecutionException( "Can't parse \"" + value + "\" as an int for property \"" + property + "\"", step); } } }