org.apache.subversion.javahl
Interface ISVNReporter

All Known Implementing Classes:
StateReporter

public interface ISVNReporter

The update Reporter.

An interface which allows a working copy to describe a subset (or possibly all) of its working-copy to a remote session, for the purposes of an update, switch, status, or diff operation.

Paths for report calls are relative to the target (not the anchor) of the operation. Report calls must be made in depth-first order: parents before children, all children of a parent before any siblings of the parent. The first report call must be a setPath with an empty path argument and a valid revision. (If the target of the operation is locally deleted or missing, use the anchor's revision.) If the target of the operation is deleted or switched relative to the anchor, follow up the initial setPath call with a linkPath or deletePath call with an empty path argument to indicate that. In no other case may there be two report descriptions for the same path. If the target of the operation is a locally added file or directory (which previously did not exist), it may be reported as having revision 0 or as having the parent directory's revision.

Since:
1.9

Method Summary
 void abortReport()
          If an error occurs during a report, this routine should cause the filesystem transaction to be aborted and cleaned up.
 void deletePath(String path)
          Describe a working copy path as missing.
 void dispose()
          Release the native peer (should not depend on finalize), and abort the report if it has not been completed yet.
 long finishReport()
          The report driver calls this when the state report is finished.
 void linkPath(String url, String path, long revision, Depth depth, boolean startEmpty, String lockToken)
          Like setPath(), but differs in that path in the working copy (relative to the root of the report driver) isn't a reflection of path in the repository (relative to the URL specified when opening the remote session), but is instead a reflection of a different repository url at revision, and has depth depth.
 void setPath(String path, long revision, Depth depth, boolean startEmpty, String lockToken)
          Describe a working copy path as being at a particular revision and having the given depth.
 

Method Detail

dispose

void dispose()
Release the native peer (should not depend on finalize), and abort the report if it has not been completed yet.


setPath

void setPath(String path,
             long revision,
             Depth depth,
             boolean startEmpty,
             String lockToken)
             throws ClientException
Describe a working copy path as being at a particular revision and having the given depth.

revision may be Revision.SVN_INVALID_REVNUM if (for example) path represents a locally-added path with no revision number, or depth is Depth.exclude.

path may not be underneath a path on which setPath() was previously called with Depth.exclude in this report.

If startEmpty is set and path is a directory, the implementor should assume the directory has no entries or properties.

This will override any previous setPath() calls made on parent paths. path is relative to the URL of the remote session that created this reporter instance.

If lockToken is not null, it is the lock token for path in the working copy.

Throws:
ClientException

deletePath

void deletePath(String path)
                throws ClientException
Describe a working copy path as missing.

path may not be underneath a path on which setPath() was previously called with Depth.exclude in this report.

Throws:
ClientException

linkPath

void linkPath(String url,
              String path,
              long revision,
              Depth depth,
              boolean startEmpty,
              String lockToken)
              throws ClientException
Like setPath(), but differs in that path in the working copy (relative to the root of the report driver) isn't a reflection of path in the repository (relative to the URL specified when opening the remote session), but is instead a reflection of a different repository url at revision, and has depth depth.

path may not be underneath a path on which setPath() was previously called with Depth.exclude in this report.

If startEmpty is set and path is a directory, the implementor should assume the directory has no entries or properties.

If lockToken is not null, it is the lock token for path in the working copy.

Throws:
ClientException

finishReport

long finishReport()
                  throws ClientException
The report driver calls this when the state report is finished. Any directories or files not explicitly "set" are assumed to be at the baseline revision originally passed into do_update(). No other reporting functions, including abortReport(), should be called after calling this function.

Returns:
The target revision of the resulting editor drive. In the case of ISVNRemote.status(java.lang.String, long, org.apache.subversion.javahl.types.Depth, org.apache.subversion.javahl.callback.RemoteStatus), this is the revision against which the status call was performed; in the case of ISVNRemote#update, it is the revision updated to.
Throws:
ClientException

abortReport

void abortReport()
                 throws ClientException
If an error occurs during a report, this routine should cause the filesystem transaction to be aborted and cleaned up. No other reporting functions should be called after calling this function.

Throws:
ClientException