org.openrewrite.jgit.errors.NoMergeBaseException Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jgit Show documentation
Show all versions of jgit Show documentation
Fork of jgit to maintain Java 8 compatibility
The newest version!
/*
* Copyright (C) 2013, Christian Halstrick and others
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Distribution License v. 1.0 which is available at
* https://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
package org.openrewrite.jgit.errors;
import java.io.IOException;
import java.text.MessageFormat;
import org.openrewrite.jgit.internal.JGitText;
import org.openrewrite.jgit.merge.RecursiveMerger;
/**
* Exception thrown if a merge fails because no merge base could be determined.
*
* @since 3.0
*/
public class NoMergeBaseException extends IOException {
private static final long serialVersionUID = 1L;
private MergeBaseFailureReason reason;
/**
* An enum listing the different reason why no merge base could be
* determined.
*/
public enum MergeBaseFailureReason {
/**
* Multiple merge bases have been found (e.g. the commits to be merged
* have multiple common predecessors) but the merge strategy doesn't
* support this (e.g. ResolveMerge)
*/
MULTIPLE_MERGE_BASES_NOT_SUPPORTED,
/**
* The number of merge bases exceeds {@link RecursiveMerger#MAX_BASES}
*/
TOO_MANY_MERGE_BASES,
/**
* In order to find a single merge base it may required to merge
* together multiple common predecessors. If during these merges
* conflicts occur the merge fails with this reason
*/
CONFLICTS_DURING_MERGE_BASE_CALCULATION
}
/**
* Construct a NoMergeBase exception
*
* @param reason
* the reason why no merge base could be found
* @param message
* a text describing the problem
*/
public NoMergeBaseException(MergeBaseFailureReason reason, String message) {
super(MessageFormat.format(JGitText.get().noMergeBase,
reason.toString(), message));
this.reason = reason;
}
/**
* Construct a NoMergeBase exception
*
* @param reason
* the reason why no merge base could be found
* @param message
* a text describing the problem
* @param why
* an exception causing this error
*/
public NoMergeBaseException(MergeBaseFailureReason reason, String message,
Throwable why) {
super(MessageFormat.format(JGitText.get().noMergeBase,
reason.toString(), message));
this.reason = reason;
initCause(why);
}
/**
* Get the reason why no merge base could be found
*
* @return the reason why no merge base could be found
*/
public MergeBaseFailureReason getReason() {
return reason;
}
}