public static void prepareAndRunChangeAction(@NotNull ChangeAction action, @NotNull TreeElement changedElement){
    FileElement changedFile = TreeUtil.getFileElement(changedElement);
    PsiManager manager = changedFile.getManager();
    PomModel model = PomManager.getModel(manager.getProject());
    model.runTransaction(new PomTransactionBase(changedElement.getPsi()) {
      @Override
      public @NotNull PomModelEvent runInner() {
        TreeChangeEvent destinationTreeChange = new TreeChangeEventImpl(model.getModelAspect(TreeAspect.class), changedFile);
        PomModelEvent event = new PomModelEvent(model, destinationTreeChange);
        action.makeChange(destinationTreeChange);

        changedElement.clearCaches();
        if (changedElement instanceof CompositeElement) {
          ((CompositeElement) changedElement).subtreeChanged();
        }
        return event;
      }
    });
  }
public static void prepareAndRunChangeAction(@NotNull ChangeAction action, @NotNull TreeElement changedElement)