@Override
  protected void addTemplateVariables(@NotNull PsiElement element, @NotNull Template template) {
    MacroCallNode type = new MacroCallNode(new IterableComponentTypeMacro());
    type.addParameter(new VariableNode("EXPR", null));
    template.addVariable("TYPE", type, type, false);

    MacroCallNode name = new MacroCallNode(new SuggestVariableNameMacro());
    template.addVariable("NAME", name, name, true);

    String finalPart = JavaFileCodeStyleFacade.forContext(element.getContainingFile()).isGenerateFinalLocals() ? "final " : null;
    if (finalPart != null) {
      template.addVariable("FINAL", new TextExpression(finalPart), false);
    }
  }
@Override
  protected void addTemplateVariables(@NotNull PsiElement element, @NotNull Template template)