Converts a String to a Boolean throwing an exception if no match.
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * <p>Operations on boolean primitives and Boolean objects.</p> * * <p>This class tries to handle <code>null</code> input gracefully. * An exception will not be thrown for a <code>null</code> input. * Each method documents its behaviour in more detail.</p> * * @author Stephen Colebourne * @author Matthew Hawthorne * @author Gary Gregory * @since 2.0 * @version $Id: BooleanUtils.java 589050 2007-10-27 05:07:45Z bayard $ */ public class Main { /** * <p>Converts a String to a Boolean throwing an exception if no match.</p> * * <pre> * BooleanUtils.toBooleanObject("true", "true", "false", "null") = Boolean.TRUE * BooleanUtils.toBooleanObject("false", "true", "false", "null") = Boolean.FALSE * BooleanUtils.toBooleanObject("null", "true", "false", "null") = null * </pre> * * @param str the String to check * @param trueString the String to match for <code>true</code> * (case sensitive), may be <code>null</code> * @param falseString the String to match for <code>false</code> * (case sensitive), may be <code>null</code> * @param nullString the String to match for <code>null</code> * (case sensitive), may be <code>null</code> * @return the Boolean value of the string, * <code>null</code> if either the String matches <code>nullString</code> * or if <code>null</code> input and <code>nullString</code> is * <code>null</code> * @throws IllegalArgumentException if the String doesn't match */ public static Boolean toBooleanObject(String str, String trueString, String falseString, String nullString) { if (str == null) { if (trueString == null) { return Boolean.TRUE; } else if (falseString == null) { return Boolean.FALSE; } else if (nullString == null) { return null; } } else if (str.equals(trueString)) { return Boolean.TRUE; } else if (str.equals(falseString)) { return Boolean.FALSE; } else if (str.equals(nullString)) { return null; } // no match throw new IllegalArgumentException("The String did not match any specified value"); } }