@NotNull
  public static <T extends PostfixTemplateExpressionCondition> Set<T> readExternalConditions(@NotNull Element template,
                                                                                             @NotNull Function<? super Element, ? extends T> conditionFactory) {
    Element conditionsElement = template.getChild(CONDITIONS_TAG);
    if (conditionsElement != null) {
      Set<T> conditions = new LinkedHashSet<>();
      for (Element conditionElement : conditionsElement.getChildren(CONDITION_TAG)) {
        T fun = conditionFactory.fun(conditionElement);
        if (fun != null) {
          ContainerUtil.addIfNotNull(conditions, fun);
        }
      }

      return conditions;
    }

    return Collections.emptySet();
  }
@NotNull
  public static <T extends PostfixTemplateExpressionCondition> Set<T> readExternalConditions(@NotNull Element template,
                                                                                             @NotNull Function<? super Element, ? extends T> conditionFactory)