@Nullable
  static PsiIfStatement create(@NotNull PsiElementFactory factory,
                               @NotNull PsiIfStatement ifStatement,
                               @NotNull PsiExpression extract,
                               @NotNull PsiExpression leave,
                               @NotNull IElementType operation,
                               CommentTracker tracker) {
    PsiStatement thenBranch = ifStatement.getThenBranch();
    if (thenBranch == null) {
      return null;
    }
    PsiStatement elseBranch = ifStatement.getElseBranch();

    if (operation == JavaTokenType.OROR) {
      return createOrOr(factory, thenBranch, elseBranch, extract, leave, tracker);
    }
    if (operation == JavaTokenType.ANDAND) {
      return createAndAnd(factory, thenBranch, elseBranch, extract, leave, tracker);
    }

    return null;
  }
@Nullable
  static PsiIfStatement create(@NotNull PsiElementFactory factory,
                               @NotNull PsiIfStatement ifStatement,
                               @NotNull PsiExpression extract,
                               @NotNull PsiExpression leave,
                               @NotNull IElementType operation,
                               CommentTracker tracker)