org.tigris.subversion.svnclientadapter
Class AbstractClientAdapter

java.lang.Object
  extended by org.tigris.subversion.svnclientadapter.AbstractClientAdapter
All Implemented Interfaces:
ISVNClientAdapter

public abstract class AbstractClientAdapter
extends java.lang.Object
implements ISVNClientAdapter

Default implementation of some of the methods of ISVNClientAdapter

Author:
C?dric Chabanois (cchabanois at no-log.org), Panagiotis Korros (pkorros at bigfoot.com)

Field Summary
 
Fields inherited from interface org.tigris.subversion.svnclientadapter.ISVNClientAdapter
REPOSITORY_FSTYPE_BDB, REPOSITORY_FSTYPE_FSFS
 
Constructor Summary
AbstractClientAdapter()
           
 
Method Summary
 SVNKeywords addKeywords(java.io.File path, SVNKeywords keywords)
          add some keyword to the keywords substitution list
 void addPasswordCallback(ISVNPromptUserPassword callback)
          Add a callback for prompting for username, password SSL etc...
 void addToIgnoredPatterns(java.io.File path, java.lang.String pattern)
          add a pattern to svn:ignore property
 boolean canCommitAcrossWC()
          Indicates whether the commitAcrossWC method is supported in the adapter
 long[] commitAcrossWC(java.io.File[] paths, java.lang.String message, boolean recurse, boolean keepLocks, boolean Atomic)
          Commits changes to the repository.
 void createPatch(java.io.File[] paths, java.io.File relativeToPath, java.io.File outFile, boolean recurse)
          create a patch from local differences.
 void diff(java.io.File[] paths, java.io.File outFile, boolean recurse)
          display the combined differences for an array of paths.
 java.util.List getIgnoredPatterns(java.io.File path)
          get the ignored patterns for the given directory if path is not a directory, returns null
 ISVNInfo getInfo(SVNUrl url)
          Get information about an URL.
 SVNKeywords getKeywords(java.io.File path)
          returns the keywords used for substitution for the given resource
 ISVNLogMessage[] getLogMessages(java.io.File arg0, SVNRevision arg1, SVNRevision arg2)
          Get the log messages for a set of revision(s)
 ISVNLogMessage[] getLogMessages(SVNUrl arg0, SVNRevision arg1, SVNRevision arg2)
          Get the log messages for a set of revision(s)
static boolean isOsWindows()
          Answer whether running on Windows OS.
 void merge(SVNUrl path1, SVNRevision revision1, SVNUrl path2, SVNRevision revision2, java.io.File localPath, boolean force, boolean recurse)
          Merge changes from two paths into a new local path.
 void merge(SVNUrl path1, SVNRevision revision1, SVNUrl path2, SVNRevision revision2, java.io.File localPath, boolean force, boolean recurse, boolean dryRun)
          Merge changes from two paths into a new local path.
 void mkdir(SVNUrl url, boolean makeParents, java.lang.String message)
          Creates a directory directly in a repository
protected  void notImplementedYet()
           
 ISVNProperty propertyGet(SVNUrl url, java.lang.String propertyName)
          get a property or null if property is not found
 SVNKeywords removeKeywords(java.io.File path, SVNKeywords keywords)
          remove some keywords to the keywords substitution list
 void setIgnoredPatterns(java.io.File path, java.util.List patterns)
          set the ignored patterns for the given directory
 void setKeywords(java.io.File path, SVNKeywords keywords, boolean recurse)
          set the keywords substitution for the given resource
 boolean statusReturnsRemoteInfo()
          Indicates whether a status call that contacts the server includes the remote info in the status object
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.tigris.subversion.svnclientadapter.ISVNClientAdapter
addConflictResolutionCallback, addDirectory, addDirectory, addFile, addNotifyListener, annotate, annotate, annotate, annotate, cancelOperation, checkout, checkout, cleanup, commit, commit, copy, copy, copy, copy, copy, copy, copy, copy, createRepository, diff, diff, diff, diff, diff, diff, diff, diff, diff, diffSummarize, diffSummarize, dispose, doExport, doExport, doImport, getAdminDirectoryName, getContent, getContent, getContent, getDirEntry, getDirEntry, getInfo, getInfo, getInfoFromWorkingCopy, getList, getList, getList, getList, getLogMessages, getLogMessages, getLogMessages, getLogMessages, getLogMessages, getLogMessages, getLogMessages, getLogMessages, getMergeInfo, getMergeInfo, getMergeinfoLog, getMergeinfoLog, getNotificationHandler, getProperties, getProperties, getSingleStatus, getStatus, getStatus, getStatus, getStatus, isAdminDirectory, isThreadsafe, lock, lock, merge, merge, merge, mergeReintegrate, mkdir, mkdir, move, move, propertyDel, propertyGet, propertyGet, propertySet, propertySet, relocate, remove, remove, removeNotifyListener, resolve, resolved, revert, setConfigDirectory, setPassword, setProgressListener, setRevProperty, setUsername, suggestMergeSources, suggestMergeSources, switchToUrl, switchToUrl, switchToUrl, unlock, unlock, update, update, update, update
 

Constructor Detail

AbstractClientAdapter

public AbstractClientAdapter()
Method Detail

setKeywords

public void setKeywords(java.io.File path,
                        SVNKeywords keywords,
                        boolean recurse)
                 throws SVNClientException
Description copied from interface: ISVNClientAdapter
set the keywords substitution for the given resource

Specified by:
setKeywords in interface ISVNClientAdapter
Throws:
SVNClientException

addKeywords

public SVNKeywords addKeywords(java.io.File path,
                               SVNKeywords keywords)
                        throws SVNClientException
Description copied from interface: ISVNClientAdapter
add some keyword to the keywords substitution list

Specified by:
addKeywords in interface ISVNClientAdapter
Returns:
keywords valid after this method call
Throws:
SVNClientException

removeKeywords

public SVNKeywords removeKeywords(java.io.File path,
                                  SVNKeywords keywords)
                           throws SVNClientException
Description copied from interface: ISVNClientAdapter
remove some keywords to the keywords substitution list

Specified by:
removeKeywords in interface ISVNClientAdapter
Returns:
keywords valid after this method call
Throws:
SVNClientException

getIgnoredPatterns

public java.util.List getIgnoredPatterns(java.io.File path)
                                  throws SVNClientException
Description copied from interface: ISVNClientAdapter
get the ignored patterns for the given directory if path is not a directory, returns null

Specified by:
getIgnoredPatterns in interface ISVNClientAdapter
Returns:
list of ignored patterns
Throws:
SVNClientException

getLogMessages

public ISVNLogMessage[] getLogMessages(java.io.File arg0,
                                       SVNRevision arg1,
                                       SVNRevision arg2)
                                throws SVNClientException
Description copied from interface: ISVNClientAdapter
Get the log messages for a set of revision(s)

Specified by:
getLogMessages in interface ISVNClientAdapter
Returns:
The list of log messages.
Throws:
SVNClientException

getLogMessages

public ISVNLogMessage[] getLogMessages(SVNUrl arg0,
                                       SVNRevision arg1,
                                       SVNRevision arg2)
                                throws SVNClientException
Description copied from interface: ISVNClientAdapter
Get the log messages for a set of revision(s)

Specified by:
getLogMessages in interface ISVNClientAdapter
Returns:
The list of log messages.
Throws:
SVNClientException

setIgnoredPatterns

public void setIgnoredPatterns(java.io.File path,
                               java.util.List patterns)
                        throws SVNClientException
Description copied from interface: ISVNClientAdapter
set the ignored patterns for the given directory

Specified by:
setIgnoredPatterns in interface ISVNClientAdapter
Throws:
SVNClientException

addToIgnoredPatterns

public void addToIgnoredPatterns(java.io.File path,
                                 java.lang.String pattern)
                          throws SVNClientException
Description copied from interface: ISVNClientAdapter
add a pattern to svn:ignore property

Specified by:
addToIgnoredPatterns in interface ISVNClientAdapter
Throws:
SVNClientException

getKeywords

public SVNKeywords getKeywords(java.io.File path)
                        throws SVNClientException
Description copied from interface: ISVNClientAdapter
returns the keywords used for substitution for the given resource

Specified by:
getKeywords in interface ISVNClientAdapter
Returns:
the keywords used for substitution
Throws:
SVNClientException

addPasswordCallback

public void addPasswordCallback(ISVNPromptUserPassword callback)
Description copied from interface: ISVNClientAdapter
Add a callback for prompting for username, password SSL etc...

Specified by:
addPasswordCallback in interface ISVNClientAdapter

statusReturnsRemoteInfo

public boolean statusReturnsRemoteInfo()
Description copied from interface: ISVNClientAdapter
Indicates whether a status call that contacts the server includes the remote info in the status object

Specified by:
statusReturnsRemoteInfo in interface ISVNClientAdapter
Returns:
true when the client adapter implementation delivers remote info within status

commitAcrossWC

public long[] commitAcrossWC(java.io.File[] paths,
                             java.lang.String message,
                             boolean recurse,
                             boolean keepLocks,
                             boolean Atomic)
                      throws SVNClientException
Description copied from interface: ISVNClientAdapter
Commits changes to the repository. This usually requires authentication, see Auth. This differs from the normal commit method in that it can accept paths from more than one working copy.

Specified by:
commitAcrossWC in interface ISVNClientAdapter
Parameters:
paths - files to commit.
message - log message.
recurse - whether the operation should be done recursively.
keepLocks - whether to keep locks on files that are committed.
Atomic - whether to attempt to perform the commit from multiple working copies atomically. Files from the same repository will be processed with one commit operation. If files span multiple repositories they will be processed in multiple commits. When atomic is false, you will get one commit per WC.
Returns:
Returns an array of longs representing the revisions. It returns a -1 if the revision number is invalid.
Throws:
SVNClientException

notImplementedYet

protected void notImplementedYet()
                          throws SVNClientException
Throws:
SVNClientException

canCommitAcrossWC

public boolean canCommitAcrossWC()
Description copied from interface: ISVNClientAdapter
Indicates whether the commitAcrossWC method is supported in the adapter

Specified by:
canCommitAcrossWC in interface ISVNClientAdapter
Returns:
true when the client adapter implementation supports commitAcrossWC

mkdir

public void mkdir(SVNUrl url,
                  boolean makeParents,
                  java.lang.String message)
           throws SVNClientException
Description copied from interface: ISVNClientAdapter
Creates a directory directly in a repository

Specified by:
mkdir in interface ISVNClientAdapter
Throws:
SVNClientException

isOsWindows

public static boolean isOsWindows()
Answer whether running on Windows OS. (Actual code extracted from org.apache.commons.lang.SystemUtils.IS_OS_WINDOWS) (For such one simple method it does make sense to introduce dependency on whole commons-lang.jar)

Returns:
true when the underlying

getInfo

public ISVNInfo getInfo(SVNUrl url)
                 throws SVNClientException
Description copied from interface: ISVNClientAdapter
Get information about an URL. Uses info2() call which contacts the repository

Specified by:
getInfo in interface ISVNClientAdapter
Returns:
information about an URL.
Throws:
SVNClientException

merge

public void merge(SVNUrl path1,
                  SVNRevision revision1,
                  SVNUrl path2,
                  SVNRevision revision2,
                  java.io.File localPath,
                  boolean force,
                  boolean recurse,
                  boolean dryRun)
           throws SVNClientException
Description copied from interface: ISVNClientAdapter
Merge changes from two paths into a new local path.

Specified by:
merge in interface ISVNClientAdapter
Parameters:
path1 - first path or url
revision1 - first revision
path2 - second path or url
revision2 - second revision
localPath - target local path
force - overwrite local changes
recurse - traverse into subdirectories
dryRun - do not update working copy
Throws:
SVNClientException

merge

public void merge(SVNUrl path1,
                  SVNRevision revision1,
                  SVNUrl path2,
                  SVNRevision revision2,
                  java.io.File localPath,
                  boolean force,
                  boolean recurse)
           throws SVNClientException
Description copied from interface: ISVNClientAdapter
Merge changes from two paths into a new local path.

Specified by:
merge in interface ISVNClientAdapter
Parameters:
path1 - first path or url
revision1 - first revision
path2 - second path or url
revision2 - second revision
localPath - target local path
force - overwrite local changes
recurse - traverse into subdirectories
Throws:
SVNClientException

propertyGet

public ISVNProperty propertyGet(SVNUrl url,
                                java.lang.String propertyName)
                         throws SVNClientException
Description copied from interface: ISVNClientAdapter
get a property or null if property is not found

Specified by:
propertyGet in interface ISVNClientAdapter
Returns:
a property or null
Throws:
SVNClientException

diff

public void diff(java.io.File[] paths,
                 java.io.File outFile,
                 boolean recurse)
          throws SVNClientException
Description copied from interface: ISVNClientAdapter
display the combined differences for an array of paths.

Specified by:
diff in interface ISVNClientAdapter
Throws:
SVNClientException

createPatch

public void createPatch(java.io.File[] paths,
                        java.io.File relativeToPath,
                        java.io.File outFile,
                        boolean recurse)
                 throws SVNClientException
Description copied from interface: ISVNClientAdapter
create a patch from local differences.

Specified by:
createPatch in interface ISVNClientAdapter
relativeToPath - - create patch relative to this location
Throws:
SVNClientException