org.tmatesoft.svn.core.wc

## Class SVNStatusClient

- java.lang.Object
- - org.tmatesoft.svn.core.wc.SVNBasicClient
  - - org.tmatesoft.svn.core.wc.SVNStatusClient

-     public class SVNStatusClient
      extends SVNBasicClient

  The SVNStatusClient class provides methods for obtaining information on the status of Working Copy items. The functionality of SVNStatusClient corresponds to the `'svn status'` command of the native SVN command line client.

  One of the main advantages of SVNStatusClient lies in that fact that for each processed item the status information is collected and put into an SVNStatus object. Further there are two ways how this object can be passed to a developer (depending on the version of the doStatus() method that was invoked):

  1. the SVNStatus can be passed to a developer's status handler (that should implement ISVNStatusHandler) in which the developer retrieves status information and decides how to interprete that info;
  2. another way is that an appropriate doStatus() method just returns that SVNStatus object.
  Those methods that match the first variant can be called recursively - obtaining status information for all child entries, the second variant just the reverse - methods are called non-recursively and allow to get status info on a single item.
  Since:
    1.2
  Version:
    1.3
  Author:
    TMate Software Ltd.
  See Also:
    `ISVNStatusHandler`, `SVNStatus`, Examples

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `SVNStatusClient(ISVNAuthenticationManager authManager, ISVNOptions options)` Constructs and initializes an SVNStatusClient object with the specified run-time configuration and authentication drivers.
    `SVNStatusClient(ISVNRepositoryPool repositoryPool, ISVNOptions options)` Constructs and initializes an SVNStatusClient object with the specified run-time configuration and repository pool object.
    `SVNStatusClient(SvnOperationFactory of)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `SVNStatus` | `doStatus(java.io.File path, boolean remote)` Collects status information on a single Working Copy item.
    `SVNStatus` | `doStatus(java.io.File path, boolean remote, boolean collectParentExternals)` Collects status information on a single Working Copy item.
    `long` | `doStatus(java.io.File path, boolean recursive, boolean remote, boolean reportAll, boolean includeIgnored, boolean collectParentExternals, ISVNStatusHandler handler)` Deprecated. use `doStatus(File, SVNRevision, SVNDepth, boolean, boolean, boolean, boolean, ISVNStatusHandler, Collection)` instead
    `long` | `doStatus(java.io.File path, boolean recursive, boolean remote, boolean reportAll, boolean includeIgnored, ISVNStatusHandler handler)` Deprecated. use `doStatus(File, SVNRevision, SVNDepth, boolean, boolean, boolean, boolean, ISVNStatusHandler, Collection)` instead
    `long` | `doStatus(java.io.File path, SVNRevision revision, boolean recursive, boolean remote, boolean reportAll, boolean includeIgnored, boolean collectParentExternals, ISVNStatusHandler handler)` Deprecated. use `doStatus(File, SVNRevision, SVNDepth, boolean, boolean, boolean, boolean, ISVNStatusHandler, Collection)` instead

    `long`

    `doStatus(java.io.File path, SVNRevision revision, SVNDepth depth, boolean remote, boolean reportAll, boolean includeIgnored, boolean collectParentExternals, ISVNStatusHandler handler, java.util.Collection<java.lang.String> changeLists)`
    Given a `path` to a working copy directory (or single file), calls `handler` with a set of `SVNStatus` objects which describe the status of the `path`, and its children (recursing according to `depth`).

    `protected void` | `initDefaults()`
    `void` | `setFilesProvider(ISVNStatusFileProvider filesProvider)`

    - ### Methods inherited from class org.tmatesoft.svn.core.wc.SVNBasicClient

      `dontWC17Support, getDebugLog, getOperationsFactory, getOptions, getPathListHandler, getReposRoot, getReposRoot, isIgnoreExternals, isLeaveConflictsUnresolved, isWC17Supported, setDebugLog, setEventHandler, setEventPathPrefix, setIgnoreExternals, setLeaveConflictsUnresolved, setOptions, setPathListHandler`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SVNStatusClient

          public SVNStatusClient(ISVNAuthenticationManager authManager,
                         ISVNOptions options)

      Constructs and initializes an SVNStatusClient object with the specified run-time configuration and authentication drivers.

      If `options` is null, then this SVNStatusClient will be using a default run-time configuration driver which takes client-side settings from the default SVN's run-time configuration area but is not able to change those settings (read more on `ISVNOptions` and `SVNWCUtil`).

      If `authManager` is null, then this SVNStatusClient will be using a default authentication and network layers driver (see `SVNWCUtil.createDefaultAuthenticationManager()`) which uses server-side settings and auth storage from the default SVN's run-time configuration area (or system properties if that area is not found).

      Parameters:
        `authManager` - an authentication and network layers driver
        `options` - a run-time configuration options driver

    - #### SVNStatusClient

          public SVNStatusClient(ISVNRepositoryPool repositoryPool,
                         ISVNOptions options)

      Constructs and initializes an SVNStatusClient object with the specified run-time configuration and repository pool object.

      If `options` is null, then this SVNStatusClient will be using a default run-time configuration driver which takes client-side settings from the default SVN's run-time configuration area but is not able to change those settings (read more on `ISVNOptions` and `SVNWCUtil`).

      If `repositoryPool` is null, then `SVNRepositoryFactory` will be used to create `repository access objects`.
      Parameters:
        `repositoryPool` - a repository pool object
        `options` - a run-time configuration options driver

    - #### SVNStatusClient

          public SVNStatusClient(SvnOperationFactory of)

  - ### Method Detail

    - #### initDefaults

          protected void initDefaults()

      Overrides:
        `initDefaults` in class `SVNBasicClient`

    - #### doStatus

          public long doStatus(java.io.File path,
                      boolean recursive,
                      boolean remote,
                      boolean reportAll,
                      boolean includeIgnored,
                      ISVNStatusHandler handler)
                        throws SVNException

      Deprecated. use `doStatus(File, SVNRevision, SVNDepth, boolean, boolean, boolean, boolean, ISVNStatusHandler, Collection)` instead
      Collects status information on Working Copy items and passes it to a `handler`.
      Parameters:
        `path` - local item's path
        `recursive` - relevant only if `path` denotes a directory: true to obtain status info recursively for all child entries, false only for items located immediately in the directory itself
        `remote` - true to check up the status of the item in the repository, that will tell if the local item is out-of-date (like '-u' option in the SVN client's `'svn status'` command), otherwise false
        `reportAll` - true to collect status information on those items that are in a 'normal' state (unchanged), otherwise false
        `includeIgnored` - true to force the operation to collect information on items that were set to be ignored (like '--no-ignore' option in the SVN client's 'svn status' command to disregard default and 'svn:ignore' property ignores), otherwise false
        `handler` - a caller's status handler that will be involved in processing status information
      Returns:
        the revision number the status information was collected against
      Throws:
        `SVNException`
      See Also:
        `ISVNStatusHandler`

    - #### doStatus

          public long doStatus(java.io.File path,
                      boolean recursive,
                      boolean remote,
                      boolean reportAll,
                      boolean includeIgnored,
                      boolean collectParentExternals,
                      ISVNStatusHandler handler)
                        throws SVNException

      Deprecated. use `doStatus(File, SVNRevision, SVNDepth, boolean, boolean, boolean, boolean, ISVNStatusHandler, Collection)` instead
      Collects status information on Working Copy items and passes it to a `handler`.

      Calling this method is equivalent to `doStatus(path, SVNRevision.HEAD, recursive, remote, reportAll, includeIgnored, collectParentExternals, handler)`.

      Parameters:
        `path` - local item's path
        `recursive` - relevant only if `path` denotes a directory: true to obtain status info recursively for all child entries, false only for items located immediately in the directory itself
        `remote` - true to check up the status of the item in the repository, that will tell if the local item is out-of-date (like '-u' option in the SVN client's `'svn status'` command), otherwise false
        `reportAll` - true to collect status information on all items including those ones that are in a 'normal' state (unchanged), otherwise false
        `includeIgnored` - true to force the operation to collect information on items that were set to be ignored (like '--no-ignore' option in the SVN client's `'svn status'` command to disregard default and 'svn:ignore' property ignores), otherwise false
        `collectParentExternals` - false to make the operation ignore information on externals definitions (like '--ignore-externals' option in the SVN client's `'svn status'` command), otherwise true
        `handler` - a caller's status handler that will be involved in processing status information
      Returns:
        the revision number the status information was collected against
      Throws:
        `SVNException`

    - #### doStatus

          public long doStatus(java.io.File path,
                      SVNRevision revision,
                      boolean recursive,
                      boolean remote,
                      boolean reportAll,
                      boolean includeIgnored,
                      boolean collectParentExternals,
                      ISVNStatusHandler handler)
                        throws SVNException

      Deprecated. use `doStatus(File, SVNRevision, SVNDepth, boolean, boolean, boolean, boolean, ISVNStatusHandler, Collection)` instead
      Collects status information on Working Copy items and passes it to a `handler`.
      Parameters:
        `path` - local item's path
        `revision` - if `remote` is true this revision is used to calculate status against
        `recursive` - relevant only if `path` denotes a directory: true to obtain status info recursively for all child entries, false only for items located immediately in the directory itself
        `remote` - true to check up the status of the item in the repository, that will tell if the local item is out-of-date (like '-u' option in the SVN client's `'svn status'` command), otherwise false
        `reportAll` - true to collect status information on all items including those ones that are in a 'normal' state (unchanged), otherwise false
        `includeIgnored` - true to force the operation to collect information on items that were set to be ignored (like '--no-ignore' option in the SVN client's `'svn status'` command to disregard default and 'svn:ignore' property ignores), otherwise false
        `collectParentExternals` - false to make the operation ignore information on externals definitions (like '--ignore-externals' option in the SVN client's `'svn status'` command), otherwise true
        `handler` - a caller's status handler that will be involved in processing status information
      Returns:
        the revision number the status information was collected against
      Throws:
        `SVNException`

    - #### doStatus

          public long doStatus(java.io.File path,
                      SVNRevision revision,
                      SVNDepth depth,
                      boolean remote,
                      boolean reportAll,
                      boolean includeIgnored,
                      boolean collectParentExternals,
                      ISVNStatusHandler handler,
                      java.util.Collection<java.lang.String> changeLists)
                        throws SVNException

      Given a `path` to a working copy directory (or single file), calls `handler` with a set of `SVNStatus` objects which describe the status of the `path`, and its children (recursing according to `depth`).

      If `reportAll` is set, retrieves all entries; otherwise, retrieves only "interesting" entries (local modifications and/or out of date).

      If `remote` is set, contacts the repository and augments the status objects with information about out-of-dateness (with respect to `revision`).

      If `SVNBasicClient.isIgnoreExternals()` returns false, then recurses into externals definitions (if any exist and `depth` is either `SVNDepth.INFINITY` or `SVNDepth.UNKNOWN`) after handling the main target. This calls the client notification handler ( `ISVNEventHandler`) with the `SVNEventAction.STATUS_EXTERNAL` action before handling each externals definition, and with `SVNEventAction.STATUS_COMPLETED` after each.

      `changeLists` is a collection of `String` changelist names, used as a restrictive filter on items whose statuses are reported; that is, doesn't report status about any item unless it's a member of one of those changelists. If `changeLists` is empty (or null), no changelist filtering occurs.
      Parameters:
        `path` - working copy path
        `revision` - if `remote` is true, status is calculated against this revision
        `depth` - tree depth to process
        `remote` - true to check up the status of the item in the repository, that will tell if the local item is out-of-date (like '-u' option in the SVN client's `'svn status'` command), otherwise false
        `reportAll` - true to collect status information on all items including those ones that are in a 'normal' state (unchanged), otherwise false
        `includeIgnored` - true to force the operation to collect information on items that were set to be ignored (like '--no-ignore' option in the SVN client's `'svn status'` command to disregard default and 'svn:ignore' property ignores), otherwise false
        `collectParentExternals` - obsolete (not used)
        `handler` - a caller's status handler that will be involved in processing status information
        `changeLists` - collection with changelist names
      Returns:
        returns the actual revision against which the working copy was compared; the return value is not meaningful (-1) unless `remote` is set
      Throws:
        `SVNException`
      Since:
        1.2, SVN 1.5

    - #### doStatus

          public SVNStatus doStatus(java.io.File path,
                           boolean remote)
                             throws SVNException

      Collects status information on a single Working Copy item.
      Parameters:
        `path` - local item's path
        `remote` - true to check up the status of the item in the repository, that will tell if the local item is out-of-date (like '-u' option in the SVN client's `'svn status'` command), otherwise false
      Returns:
        an SVNStatus object representing status information for the item
      Throws:
        `SVNException`

    - #### doStatus

          public SVNStatus doStatus(java.io.File path,
                           boolean remote,
                           boolean collectParentExternals)
                             throws SVNException

      Collects status information on a single Working Copy item.
      Parameters:
        `path` - local item's path
        `remote` - true to check up the status of the item in the repository, that will tell if the local item is out-of-date (like '-u' option in the SVN client's `'svn status'` command), otherwise false
        `collectParentExternals` - false to make the operation ignore information on externals definitions (like '--ignore-externals' option in the SVN client's `'svn status'` command), otherwise false
      Returns:
        an SVNStatus object representing status information for the item
      Throws:
        `SVNException`

    - #### setFilesProvider

          public void setFilesProvider(ISVNStatusFileProvider filesProvider)