org.tmatesoft.svn.core.wc

## Class SVNStatus

- java.lang.Object
- - org.tmatesoft.svn.core.wc.SVNStatus

-     public class SVNStatus
      extends java.lang.Object

  The SVNStatus class is used to provide detailed status information for a Working Copy item as a result of a status operation invoked by a doStatus() method of SVNStatusClient. SVNStatus objects are generated for each 'interesting' local item and depending on the doStatus() method in use either passed for notification to an ISVNStatusHandler implementation or such an object is just returned by the method as a status info for a single item.

  Within the status handler implementation a developer decides how to interpret status information. For some purposes this way may be more flexible in comparison with calling doStatus() that returns an SVNStatus per one local item. However the latter one may be useful when needing to find out the status of the concrete item.

  There are two approaches how to process SVNStatus objects:
  1. Implementing an ISVNStatusHandler:

       import org.tmatesoft.svn.core.wc.ISVNStatusHandler;
       import org.tmatesoft.svn.core.wc.SVNStatus;
       import org.tmatesoft.svn.core.wc.SVNStatusType;
       ...

       public class MyCustomStatusHandler implements ISVNStatusHandler {
           public void handleStatus(SVNStatus status) {
               //parse the item's contents status
               if(status.getContentsStatus() == SVNStatusType.STATUS_MODIFIED) {
                   ...
               } else if(status.getContentsStatus() == SVNStatusType.STATUS_CONFLICTED) {
                   ...
               }
               ...
               //parse properties status
               if(status.getPropertiesStatus() == SVNStatusType.STATUS_MODIFIED) {
                   ...
               }
               ...
           }
       }

  ...and providing a status handler implementation to an SVNStatusClient's doStatus() method:

       ...
       import org.tmatesoft.svn.core.wc.SVNStatusClient;
       ...

       SVNStatusClient statusClient;
       ...

       statusClient.doStatus(...., new MyCustomStatusHandler());
       ...

  2. Or process an SVNStatus like this:

       ...
       SVNStatus status = statusClient.doStatus(new File(myPath), false);
       //parsing status info here
       ...

  SVNStatus's methods which names start with `getRemote` are relevant for remote status invocations - that is when a doStatus() method of SVNStatusClient is called with the flag `remote` set to true.

  Since:
    1.2
  Version:
    1.3
  Author:
    TMate Software Ltd.
  See Also:
    `ISVNStatusHandler`, `SVNStatusType`, Examples

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `SVNStatus(SVNURL url, java.io.File file, SVNNodeKind kind, SVNRevision revision, SVNRevision committedRevision, java.util.Date committedDate, java.lang.String author, SVNStatusType contentsStatus, SVNStatusType propertiesStatus, SVNStatusType remoteContentsStatus, SVNStatusType remotePropertiesStatus, boolean isLocked, boolean isCopied, boolean isSwitched, boolean isFileExternal, java.io.File conflictNewFile, java.io.File conflictOldFile, java.io.File conflictWrkFile, java.io.File projRejectFile, java.lang.String copyFromURL, SVNRevision copyFromRevision, SVNLock remoteLock, SVNLock localLock, java.util.Map entryProperties, java.lang.String changelistName, int wcFormatVersion, SVNTreeConflictDescription treeConflict)` Constructs an SVNStatus object filling it with status information details.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `getAuthor()` Gets the author who last changed the item.
    `java.lang.String` | `getChangelistName()` Returns the name of the changelist which the working copy item, denoted by this object, belongs to.
    `java.util.Date` | `getCommittedDate()` Gets the timestamp when the item was last changed (committed).
    `SVNRevision` | `getCommittedRevision()` Gets the revision when the item was last changed (committed).
    `java.io.File` | `getConflictNewFile()` Gets the temporary file that contains all latest changes from the repository which led to a conflict with local changes.
    `java.io.File` | `getConflictOldFile()` Gets the temporary BASE revision file of that working file that is currently in conflict with changes received from the repository.
    `java.io.File` | `getConflictWrkFile()` Gets the temporary '.mine' file with all current local changes to the original file.
    `SVNStatusType` | `getContentsStatus()` Gets the Working Copy local item's contents status type.
    `SVNRevision` | `getCopyFromRevision()` Gets the revision of the item's ancestor from which the item was copied (the item is added with history).
    `java.lang.String` | `getCopyFromURL()` Gets the URL (repository location) of the ancestor from which the item was copied.
    `org.tmatesoft.svn.core.internal.wc.admin.SVNEntry` | `getEntry()` Returns a WC entry for which this object is generated.
    `java.util.Map` | `getEntryProperties()` Gets the item's SVN specific '<entry' properties.
    `java.io.File` | `getFile()` Gets the item's path in the filesystem.
    `SVNNodeKind` | `getKind()` Gets the item's node kind characterizing it as an entry.
    `SVNLock` | `getLocalLock()` Gets the file item's local lock.
    `SVNStatusType` | `getPropertiesStatus()` Gets the Working Copy local item's properties status type.
    `java.io.File` | `getPropRejectFile()` Gets the '.prej' file containing details on properties conflicts.
    `java.lang.String` | `getRemoteAuthor()` Gets the item's last changed author.
    `SVNStatusType` | `getRemoteContentsStatus()` Gets the Working Copy item's contents status type against the repository - that is comparing the item's BASE revision and the latest one in the repository when the item was changed.
    `java.util.Date` | `getRemoteDate()` Gets the item's last changed date.
    `SVNNodeKind` | `getRemoteKind()` Returns the kind of the item got from the repository.
    `SVNLock` | `getRemoteLock()` Gets the file item's repository lock - applicable for a remote status invocation.
    `SVNStatusType` | `getRemotePropertiesStatus()` Gets the Working Copy item's properties status type against the repository - that is comparing the item's BASE revision and the latest one in the repository when the item was changed.
    `SVNRevision` | `getRemoteRevision()` Gets the item's last committed repository revision.
    `SVNURL` | `getRemoteURL()` Gets the item's latest repository location.
    `SVNRevision` | `getRevision()` Gets the item's current working revision.
    `SVNTreeConflictDescription` | `getTreeConflict()` Returns a tree conflict description.
    `SVNURL` | `getURL()` Gets the item's repository location.
    `java.util.Date` | `getWorkingContentsDate()` Returns the last modified local time of the file item.
    `int` | `getWorkingCopyFormat()` Returns the working copy format number for the admin directory which the statused item is versioned under.
    `java.util.Date` | `getWorkingPropertiesDate()` Returns the last modified local time of file or directory properties.
    `boolean` | `isCopied()` Finds out if the item is added with history.
    `boolean` | `isFileExternal()` Tells if this is an externals file or not.
    `boolean` | `isLocked()` Finds out if the item is locked (not a user lock but a driver's one when during an operation a Working Copy is locked in .svn administrative areas to prevent from other operations interrupting until the running one finishes).
    `boolean` | `isSwitched()` Finds out whether the item is switched to a different repository location.
    `void` | `markExternal()` Marks the item as an external.
    `void` | `setContentsStatus(SVNStatusType statusType)` Sets the item's contents status type.
    `void` | `setEntry(org.tmatesoft.svn.core.internal.wc.admin.SVNEntry entry)` Sets a WC entry for which this object is generated.
    `void` | `setRemoteStatus(SVNStatusType contents, SVNStatusType props, SVNLock lock, SVNNodeKind kind)` Sets the item's remote status.
    `void` | `setRemoteStatus(SVNURL url, SVNStatusType contents, SVNStatusType props, SVNLock lock, SVNNodeKind kind, SVNRevision revision, java.util.Date date, java.lang.String author)` Sets the item's remote status.

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

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

- - ### Constructor Detail

    - #### SVNStatus

          public SVNStatus(SVNURL url,
                   java.io.File file,
                   SVNNodeKind kind,
                   SVNRevision revision,
                   SVNRevision committedRevision,
                   java.util.Date committedDate,
                   java.lang.String author,
                   SVNStatusType contentsStatus,
                   SVNStatusType propertiesStatus,
                   SVNStatusType remoteContentsStatus,
                   SVNStatusType remotePropertiesStatus,
                   boolean isLocked,
                   boolean isCopied,
                   boolean isSwitched,
                   boolean isFileExternal,
                   java.io.File conflictNewFile,
                   java.io.File conflictOldFile,
                   java.io.File conflictWrkFile,
                   java.io.File projRejectFile,
                   java.lang.String copyFromURL,
                   SVNRevision copyFromRevision,
                   SVNLock remoteLock,
                   SVNLock localLock,
                   java.util.Map entryProperties,
                   java.lang.String changelistName,
                   int wcFormatVersion,
                   SVNTreeConflictDescription treeConflict)

      Constructs an SVNStatus object filling it with status information details.

      Used by SVNKit internals to construct and initialize an SVNStatus object. It's not intended for users (from an API point of view).

      Parameters:
        `url` - item's repository location
        `file` - item's path in a File representation
        `kind` - item's node kind
        `revision` - item's working revision
        `committedRevision` - item's last changed revision
        `committedDate` - item's last changed date
        `author` - item's last commit author
        `contentsStatus` - local status of item's contents
        `propertiesStatus` - local status of item's properties
        `remoteContentsStatus` - status of item's contents against a repository
        `remotePropertiesStatus` - status of item's properties against a repository
        `isLocked` - if the item is locked by the driver (not a user lock)
        `isCopied` - if the item is added with history
        `isSwitched` - if the item is switched to a different URL
        `isFileExternal` - tells if the item is an external file
        `conflictNewFile` - temp file with latest changes from the repository
        `conflictOldFile` - temp file just as the conflicting one was at the BASE revision
        `conflictWrkFile` - temp file with all user's current local modifications
        `projRejectFile` - temp file describing properties conflicts
        `copyFromURL` - url of the item's ancestor from which the item was copied
        `copyFromRevision` - item's ancestor revision from which the item was copied
        `remoteLock` - item's lock in the repository
        `localLock` - item's local lock
        `entryProperties` - item's SVN specific '<entry' properties
        `changelistName` - changelist name which the item belongs to
        `wcFormatVersion` - working copy format number
        `treeConflict` - tree conflict description
      Since:
        1.3

  - ### Method Detail

    - #### getURL

          public SVNURL getURL()

      Gets the item's repository location. URL is taken from the `SVNProperty.URL` property.
      Returns:
        the item's URL represented as an SVNURL object

    - #### getRemoteURL

          public SVNURL getRemoteURL()

      Gets the item's latest repository location. For example, the item could have been moved in the repository, but `getURL()` returns the item's URL as it's defined in a URL entry property. Applicable for a remote status invocation.
      Returns:
        the item's URL as it's real repository location

    - #### getFile

          public java.io.File getFile()

      Gets the item's path in the filesystem.
      Returns:
        a File representation of the item's path

    - #### getKind

          public SVNNodeKind getKind()

      Gets the item's node kind characterizing it as an entry.
      Returns:
        the item's node kind (whether it's a file, directory, etc.)

    - #### getRevision

          public SVNRevision getRevision()

      Gets the item's current working revision.
      Returns:
        the item's working revision

    - #### getCommittedRevision

          public SVNRevision getCommittedRevision()

      Gets the revision when the item was last changed (committed).
      Returns:
        the last committed revision

    - #### getCommittedDate

          public java.util.Date getCommittedDate()

      Gets the timestamp when the item was last changed (committed).
      Returns:
        the last committed date

    - #### getAuthor

          public java.lang.String getAuthor()

      Gets the author who last changed the item.
      Returns:
        the item's last commit author

    - #### getContentsStatus

          public SVNStatusType getContentsStatus()

      Gets the Working Copy local item's contents status type.
      Returns:
        the local contents status type

    - #### getPropertiesStatus

          public SVNStatusType getPropertiesStatus()

      Gets the Working Copy local item's properties status type.
      Returns:
        the local properties status type

    - #### getRemoteContentsStatus

          public SVNStatusType getRemoteContentsStatus()

      Gets the Working Copy item's contents status type against the repository - that is comparing the item's BASE revision and the latest one in the repository when the item was changed. Applicable for a remote status invocation.

      If the remote contents status type != `SVNStatusType.STATUS_NONE` the local file may be out of date.

      Returns:
        the remote contents status type

    - #### getRemotePropertiesStatus

          public SVNStatusType getRemotePropertiesStatus()

      Gets the Working Copy item's properties status type against the repository - that is comparing the item's BASE revision and the latest one in the repository when the item was changed. Applicable for a remote status invocation.

      If the remote properties status type != `SVNStatusType.STATUS_NONE` the local file may be out of date.

      Returns:
        the remote properties status type

    - #### isLocked

          public boolean isLocked()

      Finds out if the item is locked (not a user lock but a driver's one when during an operation a Working Copy is locked in .svn administrative areas to prevent from other operations interrupting until the running one finishes).

      To clean up a Working Copy use `doCleanup()`.

      Returns:
        true if locked, otherwise false

    - #### isCopied

          public boolean isCopied()

      Finds out if the item is added with history.
      Returns:
        true if the item is added with history, otherwise false

    - #### isSwitched

          public boolean isSwitched()

      Finds out whether the item is switched to a different repository location.
      Returns:
        true if switched, otherwise false

    - #### isFileExternal

          public boolean isFileExternal()

      Tells if this is an externals file or not.
      Returns:
        true if is a file external, otherwise false
      Since:
        1.3

    - #### getConflictNewFile

          public java.io.File getConflictNewFile()

      Gets the temporary file that contains all latest changes from the repository which led to a conflict with local changes. This file is at the HEAD revision.
      Returns:
        an autogenerated temporary file just as it is in the latest revision in the repository

    - #### getConflictOldFile

          public java.io.File getConflictOldFile()

      Gets the temporary BASE revision file of that working file that is currently in conflict with changes received from the repository. This file does not contain the latest user's modifications, only 'pristine' contents.
      Returns:
        an autogenerated temporary file just as the conflicting file was before any modifications to it

    - #### getConflictWrkFile

          public java.io.File getConflictWrkFile()

      Gets the temporary '.mine' file with all current local changes to the original file. That is if the file item is in conflict with changes that came during an update this temporary file is created to get the snapshot of the user's file with only the user's local modifications and nothing more.
      Returns:
        an autogenerated temporary file with only the user's modifications

    - #### getPropRejectFile

          public java.io.File getPropRejectFile()

      Gets the '.prej' file containing details on properties conflicts. If the item's properties are in conflict with those that came during an update this file will contain a conflict description.
      Returns:
        the properties conflicts file

    - #### getCopyFromURL

          public java.lang.String getCopyFromURL()

      Gets the URL (repository location) of the ancestor from which the item was copied. That is when the item is added with history.
      Returns:
        the item ancestor's URL

    - #### getCopyFromRevision

          public SVNRevision getCopyFromRevision()

      Gets the revision of the item's ancestor from which the item was copied (the item is added with history).
      Returns:
        the ancestor's revision

    - #### getRemoteLock

          public SVNLock getRemoteLock()

      Gets the file item's repository lock - applicable for a remote status invocation.
      Returns:
        file item's repository lock

    - #### getLocalLock

          public SVNLock getLocalLock()

      Gets the file item's local lock.
      Returns:
        file item's local lock

    - #### getEntryProperties

          public java.util.Map getEntryProperties()

      Gets the item's SVN specific '<entry' properties. These properties' names start with `SVNProperty.SVN_ENTRY_PREFIX`.
      Returns:
        a Map which keys are names of SVN entry properties mapped against their values (both strings)

    - #### getRemoteRevision

          public SVNRevision getRemoteRevision()

      Gets the item's last committed repository revision. Relevant for a remote status invocation.
      Returns:
        the latest repository revision when the item was changed; null if there are no incoming changes for this file or directory.

    - #### getRemoteKind

          public SVNNodeKind getRemoteKind()

      Returns the kind of the item got from the repository. Relevant for a remote status invocation.
      Returns:
        a remote item kind

    - #### getRemoteDate

          public java.util.Date getRemoteDate()

      Gets the item's last changed date. Relevant for a remote status invocation.
      Returns:
        a repository last changed date

    - #### getRemoteAuthor

          public java.lang.String getRemoteAuthor()

      Gets the item's last changed author. Relevant for a remote status invocation.
      Returns:
        a last commit author

    - #### getWorkingContentsDate

          public java.util.Date getWorkingContentsDate()

      Returns the last modified local time of the file item. Irrelevant for directories (for directories returns `Date(0)`).
      Returns:
        last modified time of the file

    - #### getWorkingPropertiesDate

          public java.util.Date getWorkingPropertiesDate()

      Returns the last modified local time of file or directory properties.
      Returns:
        last modified time of the item properties

    - #### markExternal

          public void markExternal()

      Marks the item as an external. This method is used by SVNKit internals and not intended for users (from an API point of view).

    - #### setRemoteStatus

          public void setRemoteStatus(SVNStatusType contents,
                             SVNStatusType props,
                             SVNLock lock,
                             SVNNodeKind kind)

      Sets the item's remote status. Used by SVNKit internals and not intended for users (from an API point of view).
      Parameters:
        `contents` - item's contents status type against the repository
        `props` - item's properties status type against the repository
        `lock` - item's lock in the repository
        `kind` - item's node kind

    - #### setRemoteStatus

          public void setRemoteStatus(SVNURL url,
                             SVNStatusType contents,
                             SVNStatusType props,
                             SVNLock lock,
                             SVNNodeKind kind,
                             SVNRevision revision,
                             java.util.Date date,
                             java.lang.String author)

      Sets the item's remote status. Used by SVNKit internals and not intended for users (from an API point of view).
      Parameters:
        `url` - item's repository URL
        `contents` - item's contents status type against the repository
        `props` - item's properties status type against the repository
        `lock` - item's lock in the repository
        `kind` - item's node kind
        `revision` - item's latest revision when it was last committed
        `date` - last item's committed date
        `author` - last item's committed author

    - #### setContentsStatus

          public void setContentsStatus(SVNStatusType statusType)

      Sets the item's contents status type. Used by SVNKit internals and not intended for users (from an API point of view).
      Parameters:
        `statusType` - status type of the item's contents

    - #### setEntry

          public void setEntry(org.tmatesoft.svn.core.internal.wc.admin.SVNEntry entry)

      Sets a WC entry for which this object is generated. Used in internals.
      Parameters:
        `entry` - a WC entry

    - #### getEntry

          public org.tmatesoft.svn.core.internal.wc.admin.SVNEntry getEntry()

      Returns a WC entry for which this object is generated.
      Returns:
        a WC entry (if set)

    - #### getChangelistName

          public java.lang.String getChangelistName()

      Returns the name of the changelist which the working copy item, denoted by this object, belongs to.
      Returns:
        changelist name
      Since:
        1.2

    - #### getTreeConflict

          public SVNTreeConflictDescription getTreeConflict()

      Returns a tree conflict description.
      Returns:
        tree conflict description; `null` if no conflict description exists on this item
      Since:
        1.3

    - #### getWorkingCopyFormat

          public int getWorkingCopyFormat()

      Returns the working copy format number for the admin directory which the statused item is versioned under.

      If this status object is a result of a remote status operation, the method will return `-1`.
      Returns:
        working copy format number; `-1` for remote status
      Since:
        1.2

Copyright © 2004-2009 TMate Software Ltd. All Rights Reserved.