From 1d3e51ce7b911edde833981034809b55e9db8e82 Mon Sep 17 00:00:00 2001 From: Rene Pfeuffer Date: Thu, 19 Dec 2019 09:27:18 +0100 Subject: [PATCH] Use static create methods instead of ambiguous constructor --- .../repository/api/MergeCommandResult.java | 19 +++++++++++++------ .../spi/GitFastForwardIfPossible.java | 2 +- .../scm/repository/spi/GitMergeCommit.java | 2 +- .../scm/repository/spi/GitMergeStrategy.java | 2 +- .../repository/spi/GitMergeWithSquash.java | 2 +- 5 files changed, 17 insertions(+), 10 deletions(-) diff --git a/scm-core/src/main/java/sonia/scm/repository/api/MergeCommandResult.java b/scm-core/src/main/java/sonia/scm/repository/api/MergeCommandResult.java index 5680416925..6a8fd8ab0d 100644 --- a/scm-core/src/main/java/sonia/scm/repository/api/MergeCommandResult.java +++ b/scm-core/src/main/java/sonia/scm/repository/api/MergeCommandResult.java @@ -1,7 +1,9 @@ package sonia.scm.repository.api; import java.util.Collection; +import java.util.HashSet; +import static java.util.Collections.emptyList; import static java.util.Collections.unmodifiableCollection; /** @@ -10,18 +12,23 @@ import static java.util.Collections.unmodifiableCollection; * case you can use {@link #getFilesWithConflict()} to get a list of files with merge conflicts. */ public class MergeCommandResult { + private final Collection filesWithConflict; - private String newHeadRevision; + private final String newHeadRevision; - public MergeCommandResult(Collection filesWithConflict) { - this.filesWithConflict = filesWithConflict; - } - - public MergeCommandResult(Collection filesWithConflict, String newHeadRevision) { + private MergeCommandResult(Collection filesWithConflict, String newHeadRevision) { this.filesWithConflict = filesWithConflict; this.newHeadRevision = newHeadRevision; } + public static MergeCommandResult success(String newHeadRevision) { + return new MergeCommandResult(emptyList(), newHeadRevision); + } + + public static MergeCommandResult failure(Collection filesWithConflict) { + return new MergeCommandResult(new HashSet<>(filesWithConflict), null); + } + /** * If this returns true, the merge was successfull. If this returns false there were * merge conflicts. In this case you can use {@link #getFilesWithConflict()} to check what files could not be merged. diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitFastForwardIfPossible.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitFastForwardIfPossible.java index cf03e832a3..85ba8c2f71 100644 --- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitFastForwardIfPossible.java +++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitFastForwardIfPossible.java @@ -23,7 +23,7 @@ class GitFastForwardIfPossible extends GitMergeStrategy { MergeResult fastForwardResult = mergeWithFastForwardOnlyMode(); if (fastForwardResult.getMergeStatus().isSuccessful()) { push(); - return new MergeCommandResult(Collections.emptyList(), fastForwardResult.getNewHead().toString()); + return MergeCommandResult.success(fastForwardResult.getNewHead().toString()); } else { return fallbackMerge.run(); } diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitMergeCommit.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitMergeCommit.java index 3c76ae1631..29e404db41 100644 --- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitMergeCommit.java +++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitMergeCommit.java @@ -28,7 +28,7 @@ class GitMergeCommit extends GitMergeStrategy { if (result.getMergeStatus().isSuccessful()) { Optional revCommit = doCommit(); push(); - return new MergeCommandResult(Collections.emptyList(), extractRevisionFromRevCommit(revCommit)); + return MergeCommandResult.success(extractRevisionFromRevCommit(revCommit)); } else { return analyseFailure(result); } diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitMergeStrategy.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitMergeStrategy.java index 16048c1ef6..17b4571820 100644 --- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitMergeStrategy.java +++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitMergeStrategy.java @@ -69,6 +69,6 @@ abstract class GitMergeStrategy extends AbstractGitCommand.GitCloneWorker revCommit = doCommit(); push(); - return new MergeCommandResult(Collections.emptyList(), extractRevisionFromRevCommit(revCommit)); + return MergeCommandResult.success(extractRevisionFromRevCommit(revCommit)); } else { return analyseFailure(result); }