Package 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 X-Delta algorithm for generating all kinds of deltas.

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

## Constructor Summary

Constructors
Constructor
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

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

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

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

## Constructor Details

### 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 Details

### 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`