code: protected final <T> T defaultGetService(Class<T> type) {
          final Iterator<T> services = getServices(type);
          Require.state(services.hasNext(), "no provider for service '%s' found",
                  type.getName());
  
          final T first = services.next();
          Require.state(!services.hasNext(),
                  "there are multiple providers for the service '%s'", type.getName());
  
          return first;
      }
docs: Default implementation of {@link #getService(Class)} building upon result
  of {@link #getServices(Class)}.
  
  @param <T> The type of the service provider interface.
  @param type Type of the service to load.
  @return The single service.
  @throws IllegalStateException If no provider or if more than one provider
  of given type is available.