/*
* ====================================================================
* 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;
import org.tmatesoft.svn.core.SVNException;
/**
* The <b>ISVNConflictHandler</b> interface defines a callback for resolving conflicts during the application
* of a tree delta to a working copy.
*
* Implementations of this callback are free to present the conflict using any user interface. This may include
* simple contextual conflicts in a file's text or properties, or more complex 'tree'-based conflcts related to
* obstructed additions, deletions, and edits. The callback implementation is free to decide which sorts of
* conflicts to handle; it's also free to decide which types of conflicts are automatically resolvable and which
* require user interaction.
*
* @version 1.3
* @author TMate Software Ltd.
* @since 1.2
*/
public interface ISVNConflictHandler {
/**
* Handles the conflict given the conflict description <code>conflictDescription</code> and returns
*
* <p/>
* {@link SVNConflictResult#getConflictChoice()} values of {@link SVNConflictChoice#MINE_CONFLICT} and
* {@link SVNConflictChoice#THEIRS_CONFLICT} are not legal for conflicts in binary files or properties.
*
* @param conflictDescription describes the exact nature of the conflict, and provides information
* to help resolve it
* @return result for the conflict described by <code>conflictDescription</code>
* @throws SVNException
*/
public SVNConflictResult handleConflict(SVNConflictDescription conflictDescription) throws SVNException;
}