class RestrictedComponentContainer extends AbstractComponentContainer {

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

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

}