org.tmatesoft.svn.core.io.diff

## Class SVNDeltaGenerator

- java.lang.Object
- - org.tmatesoft.svn.core.io.diff.SVNDeltaGenerator

-     public class SVNDeltaGenerator
      extends java.lang.Object

  The SVNDeltaGenerator is intended for generating diff windows of fixed size having a target version of a file against a source one. File contents are provided as two streams - source and target ones, or just target if delta is generated against empty contents.

  The generator uses X-Delta algorithm for generating all kinds of deltas.

  Since:
    1.2
  Version:
    1.3
  Author:
    TMate Software Ltd.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `SVNDeltaGenerator()` Creates a generator that will produce diff windows of 100Kbytes contents length.
    `SVNDeltaGenerator(int maximumDiffWindowSize)` Creates a generator that will produce diff windows of a specified contents length.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `sendDelta(java.lang.String path, byte[] target, int targetLength, ISVNDeltaConsumer consumer)` Generates a series of diff windows of fixed size comparing target bytes (read from `target` stream) against an empty file, and sends produced windows to the provided consumer.

    `void`

    `sendDelta(java.lang.String path, byte[] source, int sourceLength, long sourceOffset, byte[] target, int targetLength, ISVNDeltaConsumer consumer)`
    Generates a series of diff windows of fixed size comparing `targetLength` of target bytes (read from `target` stream) against `sourceLength` of source bytes (read from `source` stream at offset `sourceOffset`), and sends produced windows to the provided `consumer`.

    `java.lang.String` | `sendDelta(java.lang.String path, java.io.InputStream target, ISVNDeltaConsumer consumer, boolean computeChecksum)` Generates a series of diff windows of fixed size comparing target bytes (from `target` stream) against an empty file and sends produced windows to the provided consumer.
    `java.lang.String` | `sendDelta(java.lang.String path, java.io.InputStream source, long sourceOffset, java.io.InputStream target, ISVNDeltaConsumer consumer, boolean computeChecksum)` Generates a series of diff windows of fixed size comparing target bytes (read from `target` stream) against source bytes (read from `source` stream), and sends produced windows to the provided consumer.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SVNDeltaGenerator

          public SVNDeltaGenerator()

      Creates a generator that will produce diff windows of 100Kbytes contents length. That is, after applying of such a window you get 100 Kbytes of file contents.
      See Also:
        `SVNDeltaGenerator(int)`

    - #### SVNDeltaGenerator

          public SVNDeltaGenerator(int maximumDiffWindowSize)

      Creates a generator that will produce diff windows of a specified contents length.
      Parameters:
        `maximumDiffWindowSize` - a maximum size of a file contents chunk that a single applied diff window would produce

  - ### Method Detail

    - #### sendDelta

          public java.lang.String sendDelta(java.lang.String path,
                                            java.io.InputStream target,
                                            ISVNDeltaConsumer consumer,
                                            boolean computeChecksum)
                                     throws SVNException

      Generates a series of diff windows of fixed size comparing target bytes (from `target` stream) against an empty file and sends produced windows to the provided consumer. `consumer`'s `textDeltaChunk()` method is called to receive and process generated windows. Now new data comes within a window, so the output stream is either ignored (if it's null) or immediately closed (if it's not null).

      If `computeChecksum` is true, the return value will be a strig containing a hex representation of the MD5 digest computed for the target contents.

      Parameters:
        `path` - a file repository path
        `target` - an input stream to read target bytes from
        `consumer` - a diff windows consumer
        `computeChecksum` - true to compute a checksum
      Returns:
        if `computeChecksum` is true, a string representing a hex form of the MD5 checksum computed for the target contents; otherwise null
      Throws:
        `SVNException`

    - #### sendDelta

          public java.lang.String sendDelta(java.lang.String path,
                                            java.io.InputStream source,
                                            long sourceOffset,
                                            java.io.InputStream target,
                                            ISVNDeltaConsumer consumer,
                                            boolean computeChecksum)
                                     throws SVNException

      Generates a series of diff windows of fixed size comparing target bytes (read from `target` stream) against source bytes (read from `source` stream), and sends produced windows to the provided consumer. `consumer`'s `textDeltaChunk()` method is called to receive and process generated windows. Now new data comes within a window, so the output stream is either ignored (if it's null) or immediately closed (if it's not null).

      If `computeChecksum` is true, the return value will be a strig containing a hex representation of the MD5 digest computed for the target contents.

      Parameters:
        `path` - a file repository path
        `source` - an input stream to read source bytes from
        `sourceOffset` - an offset of the source view in the given `source` stream
        `target` - an input stream to read target bytes from
        `consumer` - a diff windows consumer
        `computeChecksum` - true to compute a checksum
      Returns:
        if `computeChecksum` is true, a string representing a hex form of the MD5 checksum computed for the target contents; otherwise null
      Throws:
        `SVNException`

    - #### sendDelta

          public void sendDelta(java.lang.String path,
                                byte[] target,
                                int targetLength,
                                ISVNDeltaConsumer consumer)
                         throws SVNException

      Generates a series of diff windows of fixed size comparing target bytes (read from `target` stream) against an empty file, and sends produced windows to the provided consumer.

      This is identical to `sendDelta(path, null, 0, 0, target, targetLength, consumer)`.
      Parameters:
        `path` - a file repository path
        `target` - an input byte array to read target bytes from
        `targetLength` -
        `consumer` - a diff windows consumer
      Throws:
        `SVNException`

    - #### sendDelta

          public void sendDelta(java.lang.String path,
                                byte[] source,
                                int sourceLength,
                                long sourceOffset,
                                byte[] target,
                                int targetLength,
                                ISVNDeltaConsumer consumer)
                         throws SVNException

      Generates a series of diff windows of fixed size comparing `targetLength` of target bytes (read from `target` stream) against `sourceLength` of source bytes (read from `source` stream at offset `sourceOffset`), and sends produced windows to the provided `consumer`.

      Size of the produced windows is set in a constructor of this delta generator.

      `consumer`'s `textDeltaChunk()` method is called to receive and process generated windows. Now new data comes within a window, so the output stream is either ignored (if it's null) or immediately closed (if it's not null).
      Parameters:
        `path` - a file repository path
        `source` - an input stream to read source bytes from
        `sourceLength` - the size of the source view
        `sourceOffset` - an offset of the source view in the given `source` stream
        `target` - an input stream to read target bytes from
        `targetLength` - the size of the target view
        `consumer` - a diff windows consumer
      Throws:
        `SVNException`