org.tmatesoft.svn.core.wc
Class SVNStatus

java.lang.Object
  extended by 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
See Also:
ISVNStatusHandler, SVNStatusType, Examples

Constructor Summary
SVNStatus()
           
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
 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.
 SVNStatusType getCombinedNodeAndContentsStatus()
           
 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.
 SVNDepth getDepth()
           
 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 getNodeStatus()
           
 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 getRemoteNodeStatus()
           
 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.
 java.lang.String getRepositoryRelativePath()
           
 SVNURL getRepositoryRootURL()
           
 java.lang.String getRepositoryUUID()
           
 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 isConflicted()
           
 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.
 boolean isVersioned()
           
 void markExternal()
          Marks the item as an external.
 void setAuthor(java.lang.String author)
           
 void setChangelistName(java.lang.String changelistName)
           
 void setCommittedDate(java.util.Date committedDate)
           
 void setCommittedRevision(SVNRevision committedRevision)
           
 void setConflicted(boolean isConflicted)
           
 void setConflictNewFile(java.io.File conflictNewFile)
           
 void setConflictOldFile(java.io.File conflictOldFile)
           
 void setConflictWrkFile(java.io.File conflictWrkFile)
           
 void setContentsStatus(SVNStatusType statusType)
          Sets the item's contents status type.
 void setCopyFromRevision(SVNRevision copyFromRevision)
           
 void setCopyFromURL(java.lang.String copyFromURL)
           
 void setDepth(SVNDepth depth)
           
 void setEntry(org.tmatesoft.svn.core.internal.wc.admin.SVNEntry entry)
          Sets a WC entry for which this object is generated.
 void setEntryProperties(java.util.Map entryProperties)
           
 void setFile(java.io.File file)
           
 void setIsConflicted(boolean isConflicted)
           
 void setIsCopied(boolean isCopied)
           
 void setIsFileExternal(boolean isFileExternal)
           
 void setIsLocked(boolean isLocked)
           
 void setIsSwitched(boolean isSwitched)
           
 void setIsVersioned(boolean isVersioned)
           
 void setKind(SVNNodeKind kind)
           
 void setLocalContentsDate(java.util.Date localContentsDate)
           
 void setLocalLock(SVNLock localLock)
           
 void setLocalPropertiesDate(java.util.Date localPropertiesDate)
           
 void setNodeStatus(SVNStatusType nodeStatus)
           
 void setPropertiesStatus(SVNStatusType propertiesStatus)
           
 void setPropRejectFile(java.io.File propRejectFile)
           
 void setRemoteAuthor(java.lang.String remoteAuthor)
           
 void setRemoteContentsStatus(SVNStatusType remoteContentsStatus)
           
 void setRemoteDate(java.util.Date remoteDate)
           
 void setRemoteKind(SVNNodeKind remoteKind)
           
 void setRemoteLock(SVNLock remoteLock)
           
 void setRemoteNodeStatus(SVNStatusType remoteNodeStatus)
           
 void setRemotePropertiesStatus(SVNStatusType remotePropertiesStatus)
           
 void setRemoteRevision(SVNRevision remoteRevision)
           
 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.
 void setRemoteURL(SVNURL remoteURL)
           
 void setRepositoryRelativePath(java.lang.String repositoryRelativePath)
           
 void setRepositoryRootURL(SVNURL repositoryRootURL)
           
 void setRepositoryUUID(java.lang.String repositoryUUID)
           
 void setRevision(SVNRevision revision)
           
 void setTreeConflict(SVNTreeConflictDescription treeConflict)
           
 void setURL(SVNURL uRL)
           
 void setWorkingCopyFormat(int workingCopyFormat)
           
 
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

SVNStatus

public SVNStatus()
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

setConflicted

public void setConflicted(boolean isConflicted)

isConflicted

public boolean isConflicted()

isVersioned

public boolean isVersioned()

getRemoteNodeStatus

public SVNStatusType getRemoteNodeStatus()

getCombinedNodeAndContentsStatus

public SVNStatusType getCombinedNodeAndContentsStatus()

getNodeStatus

public SVNStatusType getNodeStatus()

getRepositoryRootURL

public SVNURL getRepositoryRootURL()

getRepositoryUUID

public java.lang.String getRepositoryUUID()

getRepositoryRelativePath

public java.lang.String getRepositoryRelativePath()

getDepth

public SVNDepth getDepth()

setRemoteNodeStatus

public void setRemoteNodeStatus(SVNStatusType remoteNodeStatus)

setNodeStatus

public void setNodeStatus(SVNStatusType nodeStatus)

setRepositoryRootURL

public void setRepositoryRootURL(SVNURL repositoryRootURL)

setRepositoryUUID

public void setRepositoryUUID(java.lang.String repositoryUUID)

setRepositoryRelativePath

public void setRepositoryRelativePath(java.lang.String repositoryRelativePath)

setURL

public void setURL(SVNURL uRL)

setFile

public void setFile(java.io.File file)

setKind

public void setKind(SVNNodeKind kind)

setRevision

public void setRevision(SVNRevision revision)

setCommittedRevision

public void setCommittedRevision(SVNRevision committedRevision)

setCommittedDate

public void setCommittedDate(java.util.Date committedDate)

setAuthor

public void setAuthor(java.lang.String author)

setPropertiesStatus

public void setPropertiesStatus(SVNStatusType propertiesStatus)

setRemoteContentsStatus

public void setRemoteContentsStatus(SVNStatusType remoteContentsStatus)

setRemotePropertiesStatus

public void setRemotePropertiesStatus(SVNStatusType remotePropertiesStatus)

setIsLocked

public void setIsLocked(boolean isLocked)

setIsCopied

public void setIsCopied(boolean isCopied)

setIsSwitched

public void setIsSwitched(boolean isSwitched)

setIsFileExternal

public void setIsFileExternal(boolean isFileExternal)

setConflictNewFile

public void setConflictNewFile(java.io.File conflictNewFile)

setConflictOldFile

public void setConflictOldFile(java.io.File conflictOldFile)

setConflictWrkFile

public void setConflictWrkFile(java.io.File conflictWrkFile)

setPropRejectFile

public void setPropRejectFile(java.io.File propRejectFile)

setCopyFromURL

public void setCopyFromURL(java.lang.String copyFromURL)

setCopyFromRevision

public void setCopyFromRevision(SVNRevision copyFromRevision)

setRemoteLock

public void setRemoteLock(SVNLock remoteLock)

setLocalLock

public void setLocalLock(SVNLock localLock)

setEntryProperties

public void setEntryProperties(java.util.Map entryProperties)

setRemoteRevision

public void setRemoteRevision(SVNRevision remoteRevision)

setRemoteURL

public void setRemoteURL(SVNURL remoteURL)

setRemoteKind

public void setRemoteKind(SVNNodeKind remoteKind)

setRemoteAuthor

public void setRemoteAuthor(java.lang.String remoteAuthor)

setRemoteDate

public void setRemoteDate(java.util.Date remoteDate)

setLocalContentsDate

public void setLocalContentsDate(java.util.Date localContentsDate)

setLocalPropertiesDate

public void setLocalPropertiesDate(java.util.Date localPropertiesDate)

setChangelistName

public void setChangelistName(java.lang.String changelistName)

setWorkingCopyFormat

public void setWorkingCopyFormat(int workingCopyFormat)

setTreeConflict

public void setTreeConflict(SVNTreeConflictDescription treeConflict)

setIsConflicted

public void setIsConflicted(boolean isConflicted)

setIsVersioned

public void setIsVersioned(boolean isVersioned)

setDepth

public void setDepth(SVNDepth depth)