code: public <I extends Renderable, O> Renderer<? super I, ? extends O> getRenderer(final I renderable,
              final Class<? extends RenderingFormat<? extends O>> renderingFormat) {
  
          RendererSelection bestMatch = null;
  
          final Collection<RendererBeanDescriptor<?>> descriptors =
                  _descriptorProvider.getRendererBeanDescriptorsForRenderingFormat(renderingFormat);
          for (final RendererBeanDescriptor<?> descriptor : descriptors) {
              final RendererSelection rendererMatch = isRendererMatch(descriptor, renderable, bestMatch);
              if (rendererMatch != null) {
                  bestMatch = rendererMatch;
              }
          }
  
          if (bestMatch == null) {
              logger.warn("Didn't find any matches for renderable {} (format={})", renderable, renderingFormat);
              return null;
          }
  
          @SuppressWarnings("unchecked") final Renderer<? super I, ? extends O> renderer =
                  (Renderer<? super I, ? extends O>) bestMatch.getRenderer();
  
          if (logger.isInfoEnabled()) {
              logger.info("Returning renderer '{}' for renderable '{}' in format '{}'",
                      new Object[] { renderer, renderable.getClass().getName(), renderingFormat.getName() });
          }
  
          return renderer;
      }
docs: Gets the best suited {@link Renderer} for the given {@link Renderable} to
  the given {@link RenderingFormat}.
  
  @param <I>
  @param <O>
  @param renderable
  @param renderingFormat
  @return