class ConfigGetParameterHandler {

  public boolean getBoolean(String key) {
    String activatedString = getStringFromCache(activatedConfigsCache, key);
    if (activatedString != null) {
      if (TRUE_REGEX.matcher(activatedString).matches()) {
        return true;
      } else if (FALSE_REGEX.matcher(activatedString).matches()) {
        return false;
      }
    }

    String defaultsString = getStringFromCache(defaultConfigsCache, key);
    if (defaultsString != null) {
      if (TRUE_REGEX.matcher(defaultsString).matches()) {
        return true;
      } else if (FALSE_REGEX.matcher(defaultsString).matches()) {
        return false;
      }
    }

    logParameterValueDoesNotExist(key, "Boolean");
    return DEFAULT_VALUE_FOR_BOOLEAN;
  }

  public  ConfigGetParameterHandler(
      ConfigCacheClient activatedConfigsCache, ConfigCacheClient defaultConfigsCache);

}