org.tmatesoft.svn.core.replicator

## Class SVNReplicationEditor

- java.lang.Object
- - 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
  Version:
    1.3
  Author:
    TMate Software Ltd.
  See Also:
    `SVNRepository`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `SVNReplicationEditor(SVNRepository repository, ISVNEditor commitEditor, SVNLogEntry revision)` Creates a new replication editor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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)