/* * ==================================================================== * 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 java.io.OutputStream; import org.tmatesoft.svn.core.SVNException; import org.tmatesoft.svn.core.io.diff.SVNDiffWindow; /** * The <b>ISVNDeltaConsumer</b> interface is implemented by receivers * of diff windows. For example, such consumers are passed to a * {@link org.tmatesoft.svn.core.io.diff.SVNDeltaGenerator delta * generator} when generating a series of diff windows from sources (text/binary streams). * * @version 1.3 * @author TMate Software Ltd. * @since 1.2 */ public interface ISVNDeltaConsumer { /** * Starts applying text delta(s) to an opened file. * * @param path a file path relative to the edit root * directory * @param baseChecksum an MD5 checksum for the base file contents (before the * file is changed) * @throws SVNException if the calculated base file checksum didn't match the expected * <code>baseChecksum</code> */ public void applyTextDelta(String path, String baseChecksum) throws SVNException; /** * Collects a next delta chunk. * The return type is nomore relevant and is left only for backward compatibility. * So, the return value may be just <span class="javakeyword">null</span>. Otherwise * if it's not <span class="javakeyword">null</span>, the stream * will be immediately closed. * * <p> * If there are more than one windows for the file, * this method is called several times. * * @param path a file path relative to the edit root * directory * @param diffWindow a next diff window * @return an output stream * @throws SVNException */ public OutputStream textDeltaChunk(String path, SVNDiffWindow diffWindow) throws SVNException; /** * Finalizes collecting text delta(s). * * @param path a file path relative to the edit root * directory * @throws SVNException */ public void textDeltaEnd(String path) throws SVNException; }