class ConfigGetParameterHandler {

  public FirebaseRemoteConfigValue getValue(String key) {
    String activatedString = getStringFromCache(activatedConfigsCache, key);
    if (activatedString != null) {
      return new FirebaseRemoteConfigValueImpl(activatedString, VALUE_SOURCE_REMOTE);
    }

    String defaultsString = getStringFromCache(defaultConfigsCache, key);
    if (defaultsString != null) {
      return new FirebaseRemoteConfigValueImpl(defaultsString, VALUE_SOURCE_DEFAULT);
    }

    logParameterValueDoesNotExist(key, "FirebaseRemoteConfigValue");
    return new FirebaseRemoteConfigValueImpl(DEFAULT_VALUE_FOR_STRING, VALUE_SOURCE_STATIC);
  }

  public  ConfigGetParameterHandler(
      ConfigCacheClient activatedConfigsCache, ConfigCacheClient defaultConfigsCache);

}