SVNKit Home

## 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 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.1.0
Version:
  1.1.1
Author:
  TMate Software Ltd.
See Also:
  `SVNRepository`

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

Method Summary
`void` `abortEdit()` Aborts the current running editor due to errors occured.
`void` `absentDir(String path)` Indicates that a path is present as a subdirectory in the edit source, but can not be conveyed to the edit consumer (perhaps because of authorization restrictions).
`void` `absentFile(String path)` Indicates that a path is present as a file in the edit source, but can not be conveyed to the edit consumer (perhaps because of authorization restrictions).
`void` `addDir(String path, String copyFromPath, long copyFromRevision)` Adds a directory.
`void` `addFile(String path, String copyFromPath, long copyFromRevision)` Adds a file.
`void` `applyTextDelta(String path, String baseChecksum)` Starts applying text delta(s) to an opened file.
`void` `changeDirProperty(String name, String value)` Changes the value of a property of the currently "opened"/"added" directory.
`void` `changeFileProperty(String path, String name, String value)` Changes the value of a property of an opened file.
`void` `closeDir()` Closes the currently opened directory fixing all changes of its properties and/or entries.
`SVNCommitInfo` `closeEdit()` Closes this editor finalizing the whole operation the editor was used for.
`void` `closeFile(String path, String textChecksum)` Closes the opened file fixing all properties and/or contents changes.
`void` `deleteEntry(String path, long revision)` Deletes an entry.
`SVNCommitInfo` `getCommitInfo()` Returns commit information on the revision committed to the replication destination repository.
`void` `openDir(String path, long revision)` Opens a directory.
`void` `openFile(String path, long revision)` Opens a file.
`void` `openRoot(long revision)` Opens the root directory on which the operation was invoked.
`void` `targetRevision(long revision)` Sets the target revision the operation is running for.
`OutputStream` `textDeltaChunk(String path, SVNDiffWindow diffWindow)` Collects a next delta chunk.
`void` `textDeltaEnd(String path)` Finalizes collecting text delta(s).

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

  Description copied from interface: `ISVNEditor`
  Sets the target revision the operation is running for. For example, the target revision to which an update is running.

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

### openRoot

    public void openRoot(long revision)
                  throws SVNException

  Description copied from interface: `ISVNEditor`
  Opens the root directory on which the operation was invoked. All property changes as well as entries adding/deletion will be applied to this root directory. When coming back up to this root (after traversing the entire tree) you should close the root by calling `ISVNEditor.closeDir()`.

  Specified by:
    `openRoot` in interface `ISVNEditor`
  Parameters:
    `revision` - the revision number of the root directory
  Throws:
    `SVNException`

### deleteEntry

    public void deleteEntry(String path,
                            long revision)
                     throws SVNException

  Description copied from interface: `ISVNEditor`
  Deletes an entry.

  In a commit - deletes an entry from a repository. In an update - deletes an entry locally (since it has been deleted in the repository). In a status - informs that an entry has been deleted.

  Specified by:
    `deleteEntry` in interface `ISVNEditor`
  Parameters:
    `path` - an entry path relative to the root directory opened by `openRoot()`
    `revision` - the revision number of `path`
  Throws:
    `SVNException`

### absentDir

    public void absentDir(String path)
                   throws SVNException

  Description copied from interface: `ISVNEditor`
  Indicates that a path is present as a subdirectory in the edit source, but can not be conveyed to the edit consumer (perhaps because of authorization restrictions).

  Specified by:
    `absentDir` in interface `ISVNEditor`
  Parameters:
    `path` - a dir path relative to the root directory opened by `openRoot()`
  Throws:
    `SVNException`

### absentFile

    public void absentFile(String path)
                    throws SVNException

  Description copied from interface: `ISVNEditor`
  Indicates that a path is present as a file in the edit source, but can not be conveyed to the edit consumer (perhaps because of authorization restrictions).

  Specified by:
    `absentFile` in interface `ISVNEditor`
  Parameters:
    `path` - a file path relative to the root directory opened by `openRoot()`
  Throws:
    `SVNException`

### addDir

    public void addDir(String path,
                       String copyFromPath,
                       long copyFromRevision)
                throws SVNException

  Description copied from interface: `ISVNEditor`
  Adds a directory.

  In a commit - adds a new directory to a repository. In an update - locally adds a directory that was added in the repository. In a status - informs about a new directory scheduled for addition.

  If `copyFromPath` is not null then it says that `path` is copied from `copyFromPath` located in `copyFromRevision`.

  Specified by:
    `addDir` in interface `ISVNEditor`
  Parameters:
    `path` - a directory path relative to the root directory opened by `openRoot()`
    `copyFromPath` - an ancestor of the added directory
    `copyFromRevision` - the revision of the ancestor
  Throws:
    `SVNException`

### openDir

    public void openDir(String path,
                        long revision)
                 throws SVNException

  Description copied from interface: `ISVNEditor`
  Opens a directory. All property changes as well as entries adding/deletion can be applied to this directory.

  Specified by:
    `openDir` in interface `ISVNEditor`
  Parameters:
    `path` - a directory path relative to the root directory opened by `openRoot()`
    `revision` - the revision of the directory
  Throws:
    `SVNException`

### changeDirProperty

    public void changeDirProperty(String name,
                                  String value)
                           throws SVNException

  Description copied from interface: `ISVNEditor`
  Changes the value of a property of the currently "opened"/"added" directory.

  Specified by:
    `changeDirProperty` in interface `ISVNEditor`
  Parameters:
    `name` - the name of a property to be changed
    `value` - new property value
  Throws:
    `SVNException`
  See Also:
    `ISVNEditor.openDir(String, long)`

### closeDir

    public void closeDir()
                  throws SVNException

  Description copied from interface: `ISVNEditor`
  Closes the currently opened directory fixing all changes of its properties and/or entries. Closing a directory picks up an editor to a parent directory.

  Specified by:
    `closeDir` in interface `ISVNEditor`
  Throws:
    `SVNException`

### addFile

    public void addFile(String path,
                        String copyFromPath,
                        long copyFromRevision)
                 throws SVNException

  Description copied from interface: `ISVNEditor`
  Adds a file.

  In a commit - adds a new file to a repository. In an update - locally adds a file that was added in the repository. In a status - informs about a new file scheduled for addition.

  If `copyFromPath` is not null then it says that `path` is copied from `copyFromPath` located in `copyFromRevision`.

  Specified by:
    `addFile` in interface `ISVNEditor`
  Parameters:
    `path` - a file path relative to the root directory opened by `openRoot()`
    `copyFromPath` - an ancestor of the added file
    `copyFromRevision` - the revision of the ancestor
  Throws:
    `SVNException`

### openFile

    public void openFile(String path,
                         long revision)
                  throws SVNException

  Description copied from interface: `ISVNEditor`
  Opens a file. After it's opened, apply delta to its contents or change the file properties.

  Specified by:
    `openFile` in interface `ISVNEditor`
  Parameters:
    `path` - a file path relative to the root directory opened by `openRoot()`
    `revision` - the revision of the file
  Throws:
    `SVNException`

### applyTextDelta

    public void applyTextDelta(String path,
                               String baseChecksum)
                        throws SVNException

  Description copied from interface: `ISVNDeltaConsumer`
  Starts applying text delta(s) to an opened file.

  Specified by:
    `applyTextDelta` in interface `ISVNDeltaConsumer`
  Parameters:
    `path` - a file path relative to the edit root directory
    `baseChecksum` - an MD5 checksum for the base file contents (before the file is changed)
  Throws:
    `SVNException` - if the calculated base file checksum didn't match the expected `baseChecksum`

### textDeltaChunk

    public OutputStream textDeltaChunk(String path,
                                       SVNDiffWindow diffWindow)
                                throws SVNException

  Description copied from interface: `ISVNDeltaConsumer`
  Collects a next delta chunk. The return type is nomore relevant and is left only for backward compatibility. So, the return value may be just null. Otherwise if it's not null, the stream will be immediately closed.

  If there are more than one windows for the file, this method is called several times.

  Specified by:
    `textDeltaChunk` in interface `ISVNDeltaConsumer`
  Parameters:
    `path` - a file path relative to the edit root directory
    `diffWindow` - a next diff window
  Returns:
    an output stream
  Throws:
    `SVNException`

### textDeltaEnd

    public void textDeltaEnd(String path)
                      throws SVNException

  Description copied from interface: `ISVNDeltaConsumer`
  Finalizes collecting text delta(s).

  Specified by:
    `textDeltaEnd` in interface `ISVNDeltaConsumer`
  Parameters:
    `path` - a file path relative to the edit root directory
  Throws:
    `SVNException`

### changeFileProperty

    public void changeFileProperty(String path,
                                   String name,
                                   String value)
                            throws SVNException

  Description copied from interface: `ISVNEditor`
  Changes the value of a property of an opened file.

  Specified by:
    `changeFileProperty` in interface `ISVNEditor`
  Parameters:
    `path` - a file path relative to the root directory opened by `openRoot()`
    `name` - a file property name
    `value` - a new value for the property
  Throws:
    `SVNException`

### closeFile

    public void closeFile(String path,
                          String textChecksum)
                   throws SVNException

  Description copied from interface: `ISVNEditor`
  Closes the opened file fixing all properties and/or contents changes.

  Specified by:
    `closeFile` in interface `ISVNEditor`
  Parameters:
    `path` - a file path relative to the root directory opened by `openRoot()`
    `textChecksum` - an MD5 checksum for the modified file
  Throws:
    `SVNException` - if the calculated upon the actual changed contents checksum does not match the expected `textChecksum`

### closeEdit

    public SVNCommitInfo closeEdit()
                            throws SVNException

  Description copied from interface: `ISVNEditor`
  Closes this editor finalizing the whole operation the editor was used for. In a commit - sends collected data to commit a transaction.

  Specified by:
    `closeEdit` in interface `ISVNEditor`
  Returns:
    a committed revision information
  Throws:
    `SVNException`

### abortEdit

    public void abortEdit()
                   throws SVNException

  Description copied from interface: `ISVNEditor`
  Aborts the current running editor due to errors occured.

  If an exception is thrown from an editor's method, call this method to abort the editor.

  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)

SVNKit Home

Copyright © 2004-2008 TMate Software Ltd. All Rights Reserved.