public boolean getBool(List<String> keyAliases, Boolean defaultValue) {
        AliasValueEntry candidate = getValue(keyAliases);
        if (candidate == null || StringUtils.isBlank(candidate.value)) {
            return defaultValue;
        }
        // If a value was provided, but the boolean converter returned null, then the value was
        // an unparseable (i.e. an invalid format). Throw an exception to indicate this.
        Boolean parsed = BooleanUtils.toBooleanObject(candidate.value);
        if (parsed == null) {
            throw InvalidOptionConfigurationException.parseFailure(candidate.alias, "boolean", candidate.value);
        }
        return parsed;
    }
Parse a boolean from the options using the key aliases.

@param keyAliases   the key aliases
@param defaultValue the default value
@return the parsed boolean, or the default value if none found
@throws InvalidOptionConfigurationException if a non-empty value corresponding to a key is found that is
                                        not recognised as a boolean (e.g. foo is not obviously
                                        true/false, so an exception will be thrown).
common/config/src/main/java/io/apiman/common/config/options/GenericOptionsParser.java