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.wc;
13:
14: /**
15: * The <b>ISVNMergerFactory</b> interface should be implemented in
16: * order to be used as a factory of merger drivers intended for
17: * merging operations.
18: *
19: * <p>
20: * To get a default merger factory implementation call the
21: * {@link ISVNOptions#getMergerFactory()} method of a default run-time
22: * configuration driver. How to obtain a default run-time configuration
23: * driver read more on {@link ISVNOptions} and {@link SVNWCUtil}.
24: *
25: * @version 1.1.1
26: * @author TMate Software Ltd.
27: * @see ISVNMerger
28: */
29: public interface ISVNMergerFactory {
30: /**
31: * Creates a new merger driver.
32: *
33: * <p>
34: * If a merger driver can not cleanly apply delta to a file (in case of a conflict state)
35: * then for each conflicting contents fragment the driver puts local data between the
36: * specified <code>conflictStart</code> and <code>conflictSeparator</code> bytes, and the newcomer
37: * data between the specified <code>conflictSeparator</code> and <code>conflictEnd</code> ones.
38: * And all these bytes are then written to the file in the place of a conflict.
39: *
40: * @param conflictStart bytes that come in the very beginning of a conflict
41: * @param conflictSeparator bytes that are used to separate two conflicting fragments -
42: * local data and the newcomer one
43: * @param conflictEnd bytes that come in the very end of a conflict
44: * @return a merger driver
45: */
46: public ISVNMerger createMerger(byte[] conflictStart,
47: byte[] conflictSeparator, byte[] conflictEnd);
48:
49: }
|