org.tmatesoft.svn.core.replicator
Class SVNReplicationEditor

java.lang.Object
  extended by org.tmatesoft.svn.core.replicator.SVNReplicationEditor
All Implemented Interfaces:
ISVNDeltaConsumer, ISVNEditor

public class SVNReplicationEditor
extends java.lang.Object
implements ISVNEditor

The SVNReplicationEditor is an editor implementation used by a repository replicator as a bridge between an update editor for the source repository and a commit editor of the target one. This editor is provided to an update method of a source SVNRepository driver to properly translate the calls of that driver to calls to a commit editor of the destination SVNRepository driver.

Since:
1.2
See Also:
SVNRepository

Constructor Summary
SVNReplicationEditor(SVNRepository repository, ISVNEditor commitEditor, SVNLogEntry revision)
          Creates a new replication editor.
 
Method Summary
 void abortEdit()
          Aborts the transaction.
 void absentDir(java.lang.String path)
          Does nothing.
 void absentFile(java.lang.String path)
          Does nothing.
 void addDir(java.lang.String path, java.lang.String copyFromPath, long copyFromRevision)
          Adds a new directory under the specified path to the target repository.
 void addFile(java.lang.String path, java.lang.String copyFromPath, long copyFromRevision)
          Adds a new file.
 void applyTextDelta(java.lang.String path, java.lang.String baseChecksum)
          Starts applying text delta.
 void changeDirProperty(java.lang.String name, SVNPropertyValue value)
          Changes a property of the current directory.
 void changeFileProperty(java.lang.String path, java.lang.String name, SVNPropertyValue value)
          Changes file property.
 void closeDir()
          Closes the current opened dir.
 SVNCommitInfo closeEdit()
          Commits the transaction.
 void closeFile(java.lang.String path, java.lang.String textChecksum)
          Closes the current opened file.
 void deleteEntry(java.lang.String path, long revision)
          Removes path from the paths to be committed.
 SVNCommitInfo getCommitInfo()
          Returns commit information on the revision committed to the replication destination repository.
 void openDir(java.lang.String path, long revision)
          Opens a corresponding path in the target repository.
 void openFile(java.lang.String path, long revision)
          Opens a file.
 void openRoot(long revision)
          Starts a next replication transaction.
 void targetRevision(long revision)
          Saves the target revision.
 java.io.OutputStream textDeltaChunk(java.lang.String path, SVNDiffWindow diffWindow)
          Applies a next chunk of delta.
 void textDeltaEnd(java.lang.String path)
          Handles text delta end.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SVNReplicationEditor

public SVNReplicationEditor(SVNRepository repository,
                            ISVNEditor commitEditor,
                            SVNLogEntry revision)
Creates a new replication editor.

repository must be created for the root location of the source repository which is to be replicated.

Parameters:
repository - a source repository
commitEditor - a commit editor received from the destination repository driver (which also must be point to the root location of the destination repository)
revision - log information of the revision to be copied
Method Detail

targetRevision

public void targetRevision(long revision)
                    throws SVNException
Saves the target revision.

Specified by:
targetRevision in interface ISVNEditor
Parameters:
revision - revision
Throws:
SVNException

openRoot

public void openRoot(long revision)
              throws SVNException
Starts a next replication transaction.

Specified by:
openRoot in interface ISVNEditor
Parameters:
revision - target revision
Throws:
SVNException

deleteEntry

public void deleteEntry(java.lang.String path,
                        long revision)
                 throws SVNException
Removes path from the paths to be committed.

Specified by:
deleteEntry in interface ISVNEditor
Parameters:
path -
revision -
Throws:
SVNException - exception with SVNErrorCode.UNKNOWN error code - if somehow chanded paths fetched from the log of the resource repository did not reflect path deletion in revision

absentDir

public void absentDir(java.lang.String path)
               throws SVNException
Does nothing.

Specified by:
absentDir in interface ISVNEditor
Parameters:
path -
Throws:
SVNException

absentFile

public void absentFile(java.lang.String path)
                throws SVNException
Does nothing.

Specified by:
absentFile in interface ISVNEditor
Parameters:
path -
Throws:
SVNException

addDir

public void addDir(java.lang.String path,
                   java.lang.String copyFromPath,
                   long copyFromRevision)
            throws SVNException
Adds a new directory under the specified path to the target repository.

Specified by:
addDir in interface ISVNEditor
Parameters:
path - target directory path
copyFromPath - not used
copyFromRevision - not used
Throws:
SVNException - exception with SVNErrorCode.UNKNOWN error code - if somehow chanded paths fetched from the log of the resource repository did not reflect path addition

openDir

public void openDir(java.lang.String path,
                    long revision)
             throws SVNException
Opens a corresponding path in the target repository.

Specified by:
openDir in interface ISVNEditor
Parameters:
path - target directory path relative to the root of the edit
revision - target directory revision
Throws:
SVNException

changeDirProperty

public void changeDirProperty(java.lang.String name,
                              SVNPropertyValue value)
                       throws SVNException
Changes a property of the current directory.

Specified by:
changeDirProperty in interface ISVNEditor
Parameters:
name -
value -
Throws:
SVNException
See Also:
ISVNEditor.openDir(String, long)

closeDir

public void closeDir()
              throws SVNException
Closes the current opened dir.

Specified by:
closeDir in interface ISVNEditor
Throws:
SVNException

addFile

public void addFile(java.lang.String path,
                    java.lang.String copyFromPath,
                    long copyFromRevision)
             throws SVNException
Adds a new file.

Specified by:
addFile in interface ISVNEditor
Parameters:
path -
copyFromPath -
copyFromRevision -
Throws:
SVNException

openFile

public void openFile(java.lang.String path,
                     long revision)
              throws SVNException
Opens a file.

Specified by:
openFile in interface ISVNEditor
Parameters:
path -
revision -
Throws:
SVNException

applyTextDelta

public void applyTextDelta(java.lang.String path,
                           java.lang.String baseChecksum)
                    throws SVNException
Starts applying text delta.

Specified by:
applyTextDelta in interface ISVNDeltaConsumer
Parameters:
path -
baseChecksum -
Throws:
SVNException

textDeltaChunk

public java.io.OutputStream textDeltaChunk(java.lang.String path,
                                           SVNDiffWindow diffWindow)
                                    throws SVNException
Applies a next chunk of delta.

Specified by:
textDeltaChunk in interface ISVNDeltaConsumer
Parameters:
path -
diffWindow -
Returns:
dummy output stream
Throws:
SVNException

textDeltaEnd

public void textDeltaEnd(java.lang.String path)
                  throws SVNException
Handles text delta end.

Specified by:
textDeltaEnd in interface ISVNDeltaConsumer
Parameters:
path -
Throws:
SVNException

changeFileProperty

public void changeFileProperty(java.lang.String path,
                               java.lang.String name,
                               SVNPropertyValue value)
                        throws SVNException
Changes file property.

Specified by:
changeFileProperty in interface ISVNEditor
Parameters:
path -
name -
value -
Throws:
SVNException

closeFile

public void closeFile(java.lang.String path,
                      java.lang.String textChecksum)
               throws SVNException
Closes the current opened file.

Specified by:
closeFile in interface ISVNEditor
Parameters:
path -
textChecksum -
Throws:
SVNException

closeEdit

public SVNCommitInfo closeEdit()
                        throws SVNException
Commits the transaction.

Specified by:
closeEdit in interface ISVNEditor
Returns:
commit info
Throws:
SVNException

abortEdit

public void abortEdit()
               throws SVNException
Aborts the transaction.

Specified by:
abortEdit in interface ISVNEditor
Throws:
SVNException

getCommitInfo

public SVNCommitInfo getCommitInfo()
Returns commit information on the revision committed to the replication destination repository.

Returns:
commit info (revision, author, date)