SVNKit Home

## org.tmatesoft.svn.core.io.diff
Class SVNDeltaGenerator

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

public class SVNDeltaGenerator
extends 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 the V-Delta algorithm for generating full contents delta (vs. empty) and the X-Delta algorithm for generating delta as a difference between target and non-empty source streams.

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

Constructor Summary
`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
`void` `sendDelta(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(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`.

`String` `sendDelta(String path, 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.
`String` `sendDelta(String path, InputStream source, long sourceOffset, 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 String sendDelta(String path,
                            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 String sendDelta(String path,
                            InputStream source,
                            long sourceOffset,
                            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(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(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`

SVNKit Home

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