code: @Override
      public <T> HTMLDisplayer<T> getHTMLDisplayer(Type targetType, String roleHint) throws HTMLDisplayerException
      {
          try {
              HTMLDisplayer<T> component;
              ComponentManager componentManager = this.componentManagerProvider.get();
  
              Type type = targetType;
              Type displayerType = new DefaultParameterizedType(null, HTMLDisplayer.class, type);
              while (!componentManager.hasComponent(displayerType, roleHint) && type instanceof ParameterizedType) {
                  type = ((ParameterizedType) type).getRawType();
                  displayerType = new DefaultParameterizedType(null, HTMLDisplayer.class, type);
              }
              if (!componentManager.hasComponent(displayerType, roleHint)) {
                  displayerType = new DefaultParameterizedType(null, HTMLDisplayer.class, Object.class);
              }
              if (componentManager.hasComponent(displayerType, roleHint)) {
                  component = componentManager.getInstance(displayerType, roleHint);
              } else {
                  component = componentManager.getInstance(displayerType);
              }
  
              return component;
          } catch (ComponentLookupException e) {
              throw new HTMLDisplayerException("Failed to initialized the HTML displayer for target type [" + targetType
                  + "] and role [" + String.valueOf(roleHint) + "]", e);
          }
      }
docs: {@inheritDoc}
  <p>
  Example: if the target type is <code>A&lt;B&lt;C&gt;&gt;</code> with {@code hint} hint, the following lookups
  will be made until a {@link HTMLDisplayer} component is found:
  <ul>
  <li>Component: <code>HTMLDisplayer&lt;A&lt;B&lt;C&gt;&gt;&gt;</code>; Role: {@code hint}
  <li>Component: <code>HTMLDisplayer&lt;A&lt;B&gt;&gt;</code>; Role: {@code hint}
  <li>Component: <code>HTMLDisplayer&lt;A&gt;</code>; Role: {@code hint}
  <li>Component: {@code HTMLDisplayer}; Role: {@code hint}
  <li>Component: {@code HTMLDisplayer}; Role: default
  </ul>