Mega Code Archive

 
Categories / Java / Data Type
 

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");   } }