package org.tmatesoft.svn.core.wc2;
import java.util.Map;
import org.tmatesoft.svn.core.SVNErrorCode;
import org.tmatesoft.svn.core.SVNMergeRange;
import org.tmatesoft.svn.core.SVNMergeRangeList;
import org.tmatesoft.svn.core.SVNURL;
/**
* Returns mergeinfo as a <code>Map</code> with merge source URLs (as
* {@link SVNURL}) mapped to range lists ({@link SVNMergeRangeList}). Range
* lists are objects containing arrays of {@link SVNMergeRange ranges}
* describing the ranges which have been merged into <code>target</code>'s URL (working copy path) as of
* <code>target</code>'s <code>pegRevision</code>. If there is no mergeinfo, returns <code>null</code>.
* <code>Target</code> can be either URL or working copy path.
*
* <p/>
* Note: unlike most APIs which deal with mergeinfo, this one returns data
* where the keys of the map are absolute repository URLs rather than
* repository filesystem paths.
*
* <p/>
* Note: this routine requires repository access.
*
* {@link #run()} throws {@link org.tmatesoft.svn.core.SVNException} in the following cases:
* <ul>
* <li/>exception with {@link SVNErrorCode#UNSUPPORTED_FEATURE}
* error code - if the server doesn't support retrieval of
* mergeinfo (which will never happen for file:// URLs)
* </ul>
*
* @author TMate Software Ltd.
* @version 1.7
*/
public class SvnGetMergeInfo extends SvnOperation<Map<SVNURL, SVNMergeRangeList>> {
protected SvnGetMergeInfo(SvnOperationFactory factory) {
super(factory);
}
/**
* Gets whether the operation changes working copy
* @return <code>true</code> if the operation changes the working copy, otherwise <code>false</code>
*/
@Override
public boolean isChangesWorkingCopy() {
return false;
}
}