liquibase.util.BooleanUtil Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of liquibase-core Show documentation
Show all versions of liquibase-core Show documentation
Liquibase is a tool for managing and executing database changes.
package liquibase.util;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
/**
* Various utility methods for working with boolean objects.
*/
public class BooleanUtil {
private final static Set trueValues = new HashSet<>(Arrays.asList("true", "t", "yes", "y", "1"));
private final static Set falseValues = new HashSet<>(Arrays.asList("false", "f", "no", "n", "0"));
/**
* @param booleanStr not trimmed string
* @return true, if represents values "true", "t", "yes", "y", or integer >= 1, false otherwise
*/
public static boolean parseBoolean(String booleanStr) {
if (booleanStr == null) {
return false;
}
String value = booleanStr.trim().toLowerCase();
// Check is made to parse int as later as possible
return trueValues.contains(value) || (!falseValues.contains(value) && isTrue(value));
}
private static boolean isTrue(String str) {
try {
return Integer.parseInt(str) > 0;
} catch (NumberFormatException ex) {
return false;
}
}
/**
* Checks if a {@link Boolean} value is {@code true}, handling null as {@code false}.
* - isTrue(null) = false
* - isTrue(false) = false
* - isTrue(true) = true
*/
public static boolean isTrue(Boolean value) {
return Boolean.TRUE.equals(value);
}
}