@Nullable
  private static String expandMacroSet(@Nullable String str,
                                       boolean firstQueueExpand,
                                       DataContext dataContext,
                                       Collection<? extends Macro> macros) throws ExecutionCancelledException {
    if (str == null) {
      return null;
    }

    MacroPathConverter converter = dataContext.getData(PATH_CONVERTER_KEY);
    List<Macro> list = ContainerUtil.filter(macros, macro -> !(macro instanceof SecondQueueExpandMacro) || firstQueueExpand);
    return expandMacros(str, list, (macro, occurence) -> {
      String expanded = macro.expandOccurence(dataContext, occurence);
      return convertPathIfNeeded(converter, macro, StringUtil.notNullize(expanded));
    });
  }
@Nullable
  private static String expandMacroSet(@Nullable String str,
                                       boolean firstQueueExpand,
                                       DataContext dataContext,
                                       Collection<? extends Macro> macros)