class RestrictedComponentContainer extends AbstractComponentContainer {

  @Override
  public <T> Provider<T> getProvider(Class<T> anInterface) {
    if (!allowedProviderInterfaces.contains(anInterface)) {
      throw new IllegalArgumentException(
          String.format(
              "Attempting to request an undeclared dependency Provider<%s>.", anInterface));
    }
    return delegateContainer.getProvider(anInterface);
  }

    RestrictedComponentContainer(Component<?> component, ComponentContainer container);

}