1 /** 2 * Copyright 2005-2012 The Kuali Foundation 3 * 4 * Licensed under the Educational Community License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.opensource.org/licenses/ecl2.php 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package org.kuali.rice.core.api.util; 17 18 import java.util.Arrays; 19 import java.util.Collection; 20 import java.util.Collections; 21 22 public enum Truth { 23 TRUE("true", "yes", "Y", "on", "1", "t", "enabled"), 24 FALSE("false", "no", "N", "off", "0", "f", "disabled"); 25 26 private final Collection<String> truthStrings; 27 28 private Truth(String... vals) { 29 truthStrings = Collections.unmodifiableCollection(Arrays.asList(vals)); 30 } 31 32 public Collection<String> getTruthStrings() { 33 return truthStrings; 34 } 35 36 /** 37 * Returns the Boolean value of a string ignoring case. 38 * 39 * If the string is not a recognized boolean value, then this method 40 * will return null. If the str is null, this method will return null. 41 * 42 * @param str the string. 43 * @return the boolean value or null. 44 */ 45 public static Boolean strToBooleanIgnoreCase(String str) { 46 return strToBooleanIgnoreCase(str, null); 47 } 48 49 /** 50 * Returns the Boolean value of a string ignoring case. 51 * 52 * If the string is not a recognized boolean value, then this method 53 * will return null. If the str is null, this method will return null. 54 * 55 * @param str the string. 56 * @param defaultValue default value to use when the str is not a recognized as a boolean value. 57 * @return the boolean value or the specified default value. 58 */ 59 public static Boolean strToBooleanIgnoreCase(String str, Boolean defaultValue) { 60 if (str == null) { 61 return defaultValue; 62 } 63 64 for (String s : TRUE.getTruthStrings()) { 65 if (s.equalsIgnoreCase(str)) { 66 return Boolean.TRUE; 67 } 68 } 69 70 for (String s : FALSE.getTruthStrings()) { 71 if (s.equalsIgnoreCase(str)) { 72 return Boolean.FALSE; 73 } 74 } 75 76 return defaultValue; 77 } 78 }