01: /*
02: * ====================================================================
03: * Copyright (c) 2004-2008 TMate Software Ltd. All rights reserved.
04: *
05: * This software is licensed as described in the file COPYING, which
06: * you should have received as part of this distribution. The terms
07: * are also available at http://svnkit.com/license.html
08: * If newer versions of this license are posted there, you may use a
09: * newer version instead, at your option.
10: * ====================================================================
11: */
12: package org.tmatesoft.svn.core.io;
13:
14: import java.io.OutputStream;
15:
16: import org.tmatesoft.svn.core.SVNException;
17: import org.tmatesoft.svn.core.io.diff.SVNDiffWindow;
18:
19: /**
20: * The <b>ISVNDeltaConsumer</b> interface is implemented by receivers
21: * of diff windows. For example, such consumers are passed to a
22: * {@link org.tmatesoft.svn.core.io.diff.SVNDeltaGenerator delta
23: * generator} when generating a series of diff windows from sources (text/binary streams).
24: *
25: * @version 1.1.1
26: * @author TMate Software Ltd.
27: */
28: public interface ISVNDeltaConsumer {
29: /**
30: * Starts applying text delta(s) to an opened file.
31: *
32: * @param path a file path relative to the edit root
33: * directory
34: * @param baseChecksum an MD5 checksum for the base file contents (before the
35: * file is changed)
36: * @throws SVNException if the calculated base file checksum didn't match the expected
37: * <code>baseChecksum</code>
38: */
39: public void applyTextDelta(String path, String baseChecksum)
40: throws SVNException;
41:
42: /**
43: * Collects a next delta chunk.
44: * The return type is nomore relevant and is left only for backward compatibility.
45: * So, the return value may be just <span class="javakeyword">null</span>. Otherwise
46: * if it's not <span class="javakeyword">null</span>, the stream
47: * will be immediately closed.
48: *
49: * <p>
50: * If there are more than one windows for the file,
51: * this method is called several times.
52: *
53: * @param path a file path relative to the edit root
54: * directory
55: * @param diffWindow a next diff window
56: * @return an output stream
57: * @throws SVNException
58: */
59: public OutputStream textDeltaChunk(String path,
60: SVNDiffWindow diffWindow) throws SVNException;
61:
62: /**
63: * Finalizes collecting text delta(s).
64: *
65: * @param path a file path relative to the edit root
66: * directory
67: * @throws SVNException
68: */
69: public void textDeltaEnd(String path) throws SVNException;
70:
71: }
|