/* * ==================================================================== * Copyright (c) 2004-2012 TMate Software Ltd. All rights reserved. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at http://svnkit.com/license.html. * If newer versions of this license are posted there, you may use a * newer version instead, at your option. * ==================================================================== */ package org.tmatesoft.svn.core.wc; /** * The <b>SVNMergeResult</b> represents a result of a text or properties merge operation. * This class combines the following information about a merge result: a status type indicating how merge * finished and, if the merge finished with a conflict, the reason of the conflict (why did the conflict ever * occur?). * * @version 1.3 * @author TMate Software Ltd. * @since 1.2 */ public class SVNMergeResult { private SVNStatusType myMergeStatus; private SVNConflictReason myConflictReason; private SVNMergeResult(SVNStatusType status, SVNConflictReason conflictReason) { myMergeStatus = status; myConflictReason = conflictReason; } /** * Creates a new merge result object. * * <p/> * If <code>status</code> is not {@link SVNStatusType#CONFLICTED}, <code>reason</code> is irrelevant and * always set to <span class="javakeyword">null</span>. If <code>status</code> is {@link SVNStatusType#CONFLICTED} * and <code>reason</code> is <span class="javakeyword">null</span>, then <code>reason</code> defaults to * {@link SVNConflictReason#EDITED}. * * @param status status of merge operation * @param reason reason of the conflict (if any) * @return merge result object */ public static SVNMergeResult createMergeResult(SVNStatusType status, SVNConflictReason reason) { if (status == SVNStatusType.CONFLICTED) { if (reason == null) { reason = SVNConflictReason.EDITED; } } else { reason = null; } return new SVNMergeResult(status, reason); } /** * Returns merge status. * * @return merge status type object. */ public SVNStatusType getMergeStatus() { return myMergeStatus; } /** * Returns conflict reason. * * @return conflict reason object. */ public SVNConflictReason getConflictReason() { return myConflictReason; } }