public class SvnInfoUtils extends java.lang.Object implements ISvnInfoProcessor
| Modifier and Type | Class and Description |
|---|---|
protected static class |
SvnInfoUtils.SvnInfoHandler
SAX parser for the svn info --xml command.
|
| Modifier and Type | Field and Description |
|---|---|
protected java.util.HashMap |
HM_REVISIONS |
protected java.util.HashSet |
HS_DIRECTORIES |
protected ISvnProcessor |
processor |
protected static java.lang.String |
SVN_REPO_ROOT_NOTFOUND |
| Constructor and Description |
|---|
SvnInfoUtils(ISvnProcessor processor)
Invokes info using the svn info command line.
|
| Modifier and Type | Method and Description |
|---|---|
java.lang.String |
absolutePathToUrl(java.lang.String absolute)
Converts an absolute path in the repository to a URL, using the
repository URL
|
java.lang.String |
absoluteToRelativePath(java.lang.String absolute)
Converts an absolute path in the repository to a path relative to the
working folder root.
|
void |
addDirectory(java.lang.String relativePath)
Adds a directory to the list of known directories.
|
void |
checkRepoRootAvailable()
Verifies that the "svn info" command can return the repository root
(info available in svn >= 1.3.0)
|
protected void |
clearCache() |
boolean |
existsInWorkingCopy(java.lang.String relativePath)
Returns true if the file exists in the working copy (according to the svn
metadata, and not file system checks).
|
java.lang.String |
getModuleName()
Assumes #loadInfo(String) has been called.
|
protected ISvnProcessor |
getProcessor() |
java.lang.String |
getRepositoryUrl()
Assumes #loadInfo() has been invoked.
|
java.lang.String |
getRepositoryUuid()
Assumes #loadInfo() has been invoked.
|
java.lang.String |
getRevisionNumber(java.lang.String relativePath)
Returns the revision number of the file in the working copy.
|
java.lang.String |
getRootRevisionNumber()
Assumes #loadInfo() has been invoked.
|
java.lang.String |
getRootUrl()
Assumes #loadInfo() has been invoked.
|
protected ProcessUtils |
getSvnInfo(boolean bRootOnly)
Invokes svn info.
|
boolean |
isDirectory(java.lang.String relativePath)
Returns true if the path has been identified as a directory.
|
protected boolean |
isQueryNeeded(boolean bRootOnly)
Do we need to re-invoke svn info?
|
void |
loadInfo()
Initializes our representation of the repository.
|
protected void |
loadInfo(boolean bRootOnly)
Loads the information from svn info if needed.
|
void |
loadInfo(java.io.InputStream stream)
Loads the information from svn info if needed.
|
java.lang.String |
relativePathToUrl(java.lang.String relative)
Converts a relative path in the working folder to a URL, using the
working folder's root URL
|
java.lang.String |
relativeToAbsolutePath(java.lang.String relative)
Converts a relative path in the working folder to an absolute path in the
repository.
|
protected void |
setRepositoryUrl(java.lang.String repositoryUrl)
Sets the project's repository URL.
|
protected void |
setRepositoryUuid(java.lang.String repositoryUuid) |
protected void |
setRootUrl(java.lang.String rootUrl)
Sets the project's root URL.
|
java.lang.String |
urlToAbsolutePath(java.lang.String url)
Converts a url to an absolute path in the repository.
|
java.lang.String |
urlToRelativePath(java.lang.String url)
Converts a url to a relative path in the repository.
|
protected static final java.lang.String SVN_REPO_ROOT_NOTFOUND
protected ISvnProcessor processor
protected final java.util.HashMap HM_REVISIONS
protected final java.util.HashSet HS_DIRECTORIES
public SvnInfoUtils(ISvnProcessor processor)
protected ISvnProcessor getProcessor()
public java.lang.String absoluteToRelativePath(java.lang.String absolute)
ISvnInfoProcessorabsoluteToRelativePath in interface ISvnInfoProcessorabsolute - Example (assume getModuleName() returns /trunk/statsvn)
/trunk/statsvn/package.htmlpublic java.lang.String absolutePathToUrl(java.lang.String absolute)
ISvnInfoProcessorabsolutePathToUrl in interface ISvnInfoProcessorabsolute - Example: /trunk/statsvn/package.htmlpublic java.lang.String relativePathToUrl(java.lang.String relative)
ISvnInfoProcessorrelativePathToUrl in interface ISvnInfoProcessorrelative - Example: src/Messages.javapublic java.lang.String relativeToAbsolutePath(java.lang.String relative)
ISvnInfoProcessorrelativeToAbsolutePath in interface ISvnInfoProcessorrelative - Example: src/Messages.javapublic boolean existsInWorkingCopy(java.lang.String relativePath)
ISvnInfoProcessorexistsInWorkingCopy in interface ISvnInfoProcessorrelativePath - the pathpublic java.lang.String getModuleName()
ISvnInfoProcessorgetModuleName in interface ISvnInfoProcessorpublic java.lang.String getRevisionNumber(java.lang.String relativePath)
ISvnInfoProcessorgetRevisionNumber in interface ISvnInfoProcessorrelativePath - the filenamepublic java.lang.String getRootRevisionNumber()
ISvnInfoProcessorgetRootRevisionNumber in interface ISvnInfoProcessorpublic java.lang.String getRootUrl()
ISvnInfoProcessorgetRootUrl in interface ISvnInfoProcessorpublic java.lang.String getRepositoryUuid()
ISvnInfoProcessorgetRepositoryUuid in interface ISvnInfoProcessorpublic java.lang.String getRepositoryUrl()
ISvnInfoProcessorgetRepositoryUrl in interface ISvnInfoProcessorprotected ProcessUtils getSvnInfo(boolean bRootOnly)
bRootOnly - true if should we check for the root only or false otherwise
(recurse for all files)public boolean isDirectory(java.lang.String relativePath)
ISvnInfoProcessorisDirectory in interface ISvnInfoProcessorrelativePath - the pathpublic void addDirectory(java.lang.String relativePath)
ISvnInfoProcessoraddDirectory in interface ISvnInfoProcessorrelativePath - the relative path.protected boolean isQueryNeeded(boolean bRootOnly)
bRootOnly - true if we need the root onlyprotected void loadInfo(boolean bRootOnly)
throws net.sf.statcvs.input.LogSyntaxException,
java.io.IOException
bRootOnly - load only the root?net.sf.statcvs.input.LogSyntaxException - if the format of the svn info is invalidjava.io.IOException - if we can't read from the response stream.public void loadInfo(java.io.InputStream stream)
throws net.sf.statcvs.input.LogSyntaxException,
java.io.IOException
ISvnInfoProcessorloadInfo in interface ISvnInfoProcessorstream - the input stream representing
an svn info command.net.sf.statcvs.input.LogSyntaxException - if the format of the svn info is invalidjava.io.IOException - if we can't read from the response stream.protected void clearCache()
public void loadInfo()
throws net.sf.statcvs.input.LogSyntaxException,
java.io.IOException
ISvnInfoProcessorloadInfo in interface ISvnInfoProcessornet.sf.statcvs.input.LogSyntaxException - if the svn info --xml is malformedjava.io.IOException - if there is an error reading from the streampublic java.lang.String urlToAbsolutePath(java.lang.String url)
ISvnInfoProcessorurlToAbsolutePath in interface ISvnInfoProcessorurl - Examples: svn://svn.statsvn.org/statsvn/trunk/statsvn,
svn://svn.statsvn.org/statsvn/trunk/statsvn/package.htmlpublic java.lang.String urlToRelativePath(java.lang.String url)
ISvnInfoProcessorurlToRelativePath in interface ISvnInfoProcessorurl - Examples: svn://svn.statsvn.org/statsvn/trunk/statsvn,
svn://svn.statsvn.org/statsvn/trunk/statsvn/package.htmlprotected void setRootUrl(java.lang.String rootUrl)
rootUrl - protected void setRepositoryUrl(java.lang.String repositoryUrl)
repositoryUrl - protected void setRepositoryUuid(java.lang.String repositoryUuid)
public void checkRepoRootAvailable()
throws SvnVersionMismatchException
checkRepoRootAvailable in interface ISvnInfoProcessorSvnVersionMismatchException - if svn info failed to provide a non-empty repository root