@Override
  @SuppressWarnings({"RawUseOfParameterizedType"})
  public @NotNull Collection<AbstractTreeNode<?>> modify(@NotNull AbstractTreeNode<?> parent, @NotNull Collection<AbstractTreeNode<?>> children, ViewSettings settings) {
    Collection<AbstractTreeNode<?>> l = children;
    int i = 0;
    for (AbstractTreeNode<?> o : children) {
      if (o instanceof ProjectViewNode) {
        ProjectViewNode<?> node = (ProjectViewNode)o;
        Object element = node.getValue();
        if (element instanceof PsiFile) {
          ProgressManager.checkCanceled();
          if (XsltSupport.isXsltFile((PsiFile)element)) {
            if (l == children && l.getClass() != ArrayList.class) {
              l = new ArrayList<>(children);
            }
            final XsltFileNode fileNode = new XsltFileNode(myProject, (PsiFile)element, settings);
            ((List<AbstractTreeNode<?>>)l).set(i, fileNode);
          }
        }
      }
      i++;
    }
    return l;
  }
@Override
  @SuppressWarnings({"RawUseOfParameterizedType"})
  public @NotNull Collection<AbstractTreeNode<?>> modify(@NotNull AbstractTreeNode<?> parent, @NotNull Collection<AbstractTreeNode<?>> children, ViewSettings settings)