code: public List<TemplateMode> getTemplateModes() {
          final List<TemplateData> templateStack = this.context.getTemplateStack();
          final List<TemplateMode> templateModeStack = new ArrayList<TemplateMode>(templateStack.size());
          for (final TemplateData templateData : templateStack) {
              templateModeStack.add(templateData.getTemplateMode());
          }
          return templateModeStack;
      }
docs: <p>
  Returns the {@link TemplateMode}s of all the stack of templates appliable to the current point
  of execution. This will depend on which templates are inserted inside wich.
  </p>
  <p>
  The first-level template will appear first, and the most specific template will appear last.
  </p>
  
  @return the stack of template modes