/*
* ====================================================================
* 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.io;
import org.tmatesoft.svn.core.SVNException;
import org.tmatesoft.svn.core.SVNProperties;
/**
* The <b>ISVNReplayHandler</b> is used in {@link SVNRepository#replayRange(long, long, long, boolean, ISVNReplayHandler)}
* to provide and editor for replaying a revision.
*
* @version 1.3
* @author TMate Software Ltd.
* @since 1.2
*/
public interface ISVNReplayHandler {
/**
* Handles the start of replaying a next revision and returns an editor through which the revision
* will be replayed.
*
* @param revision target revision number of the received replay report
* @param revisionProperties contains key/value pairs for each revision properties for this
* <code>revision</code>
* @return editor for replicating <code>revision</code>
* @throws SVNException
*/
public ISVNEditor handleStartRevision(long revision, SVNProperties revisionProperties) throws SVNException;
/**
* Handles the end of replaying a next revision. In this method the implementor should close the
* <code>editor</code>.
*
* @param revision target revision number of the received replay report
* @param revisionProperties contains key/value pairs for each revision properties for this
* <code>revision</code>
* @param editor replication editor
* @throws SVNException
*/
public void handleEndRevision(long revision, SVNProperties revisionProperties, ISVNEditor editor) throws SVNException;
}