code: public <K extends SharedResourceKey> KeyedScopedConfigViewImpl<S, K> getConfigView(S scope, K key, String factoryName) {
  
      Config config = ConfigFactory.empty();
      for (ScopedConfig<S> scopedConfig : this.scopedConfigs) {
        if (scopedConfig.getScopeType().equals(scopedConfig.getScopeType().rootScope())) {
          config = ConfigUtils.getConfigOrEmpty(scopedConfig.getConfig(), factoryName).withFallback(config);
        } else if (scope != null && SharedResourcesBrokerUtils.isScopeTypeAncestor(scope, scopedConfig.getScopeType())) {
          Config tmpConfig = ConfigUtils.getConfigOrEmpty(scopedConfig.getConfig(), factoryName);
          tmpConfig = ConfigUtils.getConfigOrEmpty(tmpConfig, scope.name());
          config = tmpConfig.atKey(scope.name()).withFallback(config);
        }
      }
  
      return new KeyedScopedConfigViewImpl<>(scope, key, factoryName, config);
    }
docs: Get a {@link org.apache.gobblin.broker.iface.ConfigView} for the input scope, key, and factory.