code: private ResolvedViewable resolveRelativeViewable(final Viewable viewable,
                                                       final Class<?> resolvingClass,
                                                       final MediaType mediaType,
                                                       final TemplateProcessor templateProcessor) {
          final String path = TemplateHelper.getTemplateName(viewable);
  
          ResolvedViewable resolvedViewable = resolveRelativeViewable(Viewables.PROTECTED_DIR + "/" + path,
                  viewable, resolvingClass, mediaType, templateProcessor);
  
          if (resolvedViewable == null) {
              resolvedViewable = resolveRelativeViewable(path,
                      viewable, resolvingClass, mediaType, templateProcessor);
          }
  
          return resolvedViewable;
      }
docs: Resolve given {@link Viewable viewable} with relative template name using {@link MediaType media type},
  {@code resolving class} and {@link TemplateProcessor template processor}.
  
  @param viewable          viewable to be resolved.
  @param mediaType         media type of te output.
  @param resolvingClass    resolving class.
  @param templateProcessor template processor to be used.
  @return resolved viewable or {@code null} if the viewable cannot be resolved.