org.tmatesoft.svn.core.wc

## Class DefaultSVNDiffGenerator

- java.lang.Object
- - org.tmatesoft.svn.core.wc.DefaultSVNDiffGenerator

- All Implemented Interfaces:
    ISVNDiffGenerator

      public class DefaultSVNDiffGenerator
      extends java.lang.Object
      implements ISVNDiffGenerator

  DefaultSVNDiffGenerator is a default implementation of ISVNDiffGenerator.

  By default, if there's no any specified implementation of the diff generator's interface, SVNKit uses this default implementation. To set a custom diff driver use `setDiffGenerator()`.

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

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static java.io.InputStream` | `EMPTY_FILE_IS`
    `protected static byte[]` | `HEADER_SEPARATOR`
    `protected static byte[]` | `PROPERTIES_SEPARATOR`
    `protected static java.lang.String` | `WC_REVISION_LABEL`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DefaultSVNDiffGenerator()` Constructs a DefaultSVNDiffGenerator.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.io.File` | `createTempDirectory()` Creates a temporary directory for diff files.
    `void` | `displayAddedDirectory(java.lang.String path, java.lang.String rev1, java.lang.String rev2)` Does nothing.
    `protected void` | `displayBinary(java.io.OutputStream os, java.lang.String mimeType1, java.lang.String mimeType2)`
    `void` | `displayDeletedDirectory(java.lang.String path, java.lang.String rev1, java.lang.String rev2)` Does nothing.
    `void` | `displayFileDiff(java.lang.String path, java.io.File file1, java.io.File file2, java.lang.String rev1, java.lang.String rev2, java.lang.String mimeType1, java.lang.String mimeType2, java.io.OutputStream result)` Writes the difference between `file1` and `file2` as they are seen in `rev1` and `rev2` to `result`.
    `protected boolean` | `displayHeader(java.io.OutputStream os, java.lang.String path, boolean deleted)`
    `protected void` | `displayHeaderFields(java.io.OutputStream os, java.lang.String label1, java.lang.String label2)`
    `void` | `displayPropDiff(java.lang.String path, SVNProperties baseProps, SVNProperties diff, java.io.OutputStream result)` Produces properties difference and writes it to `result`.
    `protected java.io.File` | `getBasePath()`
    `SVNDiffOptions` | `getDiffOptions()` Gets the diff options that are used by this generator.
    `protected java.lang.String` | `getDisplayPath(java.lang.String path)`
    `java.lang.String` | `getEncoding()` Returns the encoding used for diff output.
    `byte[]` | `getEOL()` Returns the EOL marker bytes being in use.
    `protected java.lang.String` | `getExternalDiffCommand()`
    `protected java.lang.String` | `getLabel(java.lang.String path, java.lang.String revToken)`
    `protected ISVNOptions` | `getOptions()`
    `boolean` | `hasEncoding()` Says whether this generator is using any special (non-native) charset for outputting diffs.
    `void` | `init(java.lang.String anchorPath1, java.lang.String anchorPath2)` Initializes this generator with old and new diff anchor paths.
    `boolean` | `isDiffAdded()` Tells whether added files must be diffed also.
    `boolean` | `isDiffCopied()` Tells whether deleted files must be diffed also.
    `boolean` | `isDiffDeleted()` Tells whether deleted files must be diffed also.
    `boolean` | `isDiffUnversioned()` Says if unversioned files are also diffed or ignored.
    `boolean` | `isForcedBinaryDiff()` Tells if this generator forced binary files diff.
    `protected boolean` | `isHeaderForced(java.io.File file1, java.io.File file2)`
    `void` | `setBasePath(java.io.File basePath)` Sets the base path that must be stripped from the front of the paths of compared files.
    `void` | `setDiffAdded(boolean isDiffAdded)` Enables or disables diffing added files.
    `void` | `setDiffCopied(boolean isDiffCopied)` Enables or disables copied files diffing.
    `void` | `setDiffDeleted(boolean isDiffDeleted)` Enables or disables diffing deleted files.
    `void` | `setDiffOptions(SVNDiffOptions options)` Sets diff options containing diff rules.
    `void` | `setDiffUnversioned(boolean diffUnversioned)` Includes or not unversioned files into diff processing.
    `void` | `setEncoding(java.lang.String encoding)` Sets the encoding to use for diff output.
    `void` | `setEOL(byte[] eol)` Sets the EOL bytes to use in diff output.
    `void` | `setExternalDiffCommand(java.lang.String command)` Sets an external diff program for producing the difference between files.
    `void` | `setFallbackToAbsolutePath(boolean fallback)` Controls whether error is reported on failure to compute relative display path, or absolute path is used instead.
    `void` | `setForcedBinaryDiff(boolean forced)` Sets whether binary files diff must be forced or not.
    `void` | `setOptions(ISVNOptions options)` Sets global run-time options.
    `void` | `setRawDiffOptions(java.util.Collection options)` Sets a collection of raw (`String`) diff options.
    `protected boolean` | `useLocalFileSeparatorChar()`

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

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

- - ### Field Detail

    - #### PROPERTIES_SEPARATOR

          protected static final byte[] PROPERTIES_SEPARATOR

    - #### HEADER_SEPARATOR

          protected static final byte[] HEADER_SEPARATOR

    - #### WC_REVISION_LABEL

          protected static final java.lang.String WC_REVISION_LABEL

      See Also:
        Constant Field Values

    - #### EMPTY_FILE_IS

          protected static final java.io.InputStream EMPTY_FILE_IS

  - ### Constructor Detail

    - #### DefaultSVNDiffGenerator

          public DefaultSVNDiffGenerator()

      Constructs a DefaultSVNDiffGenerator.

  - ### Method Detail

    - #### init

          public void init(java.lang.String anchorPath1,
                  java.lang.String anchorPath2)

      Initializes this generator with old and new diff anchor paths.
      Specified by:
        `init` in interface `ISVNDiffGenerator`
      Parameters:
        `anchorPath1` - an old path/URL
        `anchorPath2` - a new path/URL

    - #### setDiffOptions

          public void setDiffOptions(SVNDiffOptions options)

      Sets diff options containing diff rules.
      Parameters:
        `options` - diff options

    - #### setRawDiffOptions

          public void setRawDiffOptions(java.util.Collection options)

      Sets a collection of raw (`String`) diff options.
      Parameters:
        `options` - raw options

    - #### setOptions

          public void setOptions(ISVNOptions options)

      Sets global run-time options.
      Parameters:
        `options` - options implementation

    - #### setExternalDiffCommand

          public void setExternalDiffCommand(java.lang.String command)

      Sets an external diff program for producing the difference between files.
      Parameters:
        `command` - external diff program

    - #### setBasePath

          public void setBasePath(java.io.File basePath)

      Sets the base path that must be stripped from the front of the paths of compared files. If `basePath` is not null but is not a parent path of the target, this will lead to an error during diff.

      Note: `basePath` doesn't affect the path index generated by external diff programs.
      Specified by:
        `setBasePath` in interface `ISVNDiffGenerator`
      Parameters:
        `basePath` - common parent path to strip off the displayed paths

    - #### setFallbackToAbsolutePath

          public void setFallbackToAbsolutePath(boolean fallback)

      Controls whether error is reported on failure to compute relative display path, or absolute path is used instead.
      Parameters:
        `fallback` - true to make generator use absolute path when relative path could not be computed.

    - #### setDiffDeleted

          public void setDiffDeleted(boolean isDiffDeleted)

      Enables or disables diffing deleted files.
      Specified by:
        `setDiffDeleted` in interface `ISVNDiffGenerator`
      Parameters:
        `isDiffDeleted` -
      See Also:
        `ISVNDiffGenerator.isDiffDeleted()`

    - #### isDiffDeleted

          public boolean isDiffDeleted()

      Tells whether deleted files must be diffed also.
      Specified by:
        `isDiffDeleted` in interface `ISVNDiffGenerator`
      Returns:
        true if deleted files must be diffed also
      See Also:
        `ISVNDiffGenerator.setDiffDeleted(boolean)`

    - #### setDiffAdded

          public void setDiffAdded(boolean isDiffAdded)

      Enables or disables diffing added files.
      Specified by:
        `setDiffAdded` in interface `ISVNDiffGenerator`
      Parameters:
        `isDiffAdded` -
      See Also:
        `ISVNDiffGenerator.isDiffAdded()`

    - #### isDiffAdded

          public boolean isDiffAdded()

      Tells whether added files must be diffed also.
      Specified by:
        `isDiffAdded` in interface `ISVNDiffGenerator`
      Returns:
        true if added files must be diffed also
      See Also:
        `ISVNDiffGenerator.setDiffAdded(boolean)`

    - #### setDiffCopied

          public void setDiffCopied(boolean isDiffCopied)

      Enables or disables copied files diffing.
      Specified by:
        `setDiffCopied` in interface `ISVNDiffGenerator`
      Parameters:
        `isDiffCopied` -
      See Also:
        `ISVNDiffGenerator.isDiffCopied()`

    - #### isDiffCopied

          public boolean isDiffCopied()

      Tells whether deleted files must be diffed also.
      Specified by:
        `isDiffCopied` in interface `ISVNDiffGenerator`
      Returns:
        true if copied files must be diffed also
      See Also:
        `ISVNDiffGenerator.setDiffCopied(boolean)`

    - #### getDiffOptions

          public SVNDiffOptions getDiffOptions()

      Gets the diff options that are used by this generator. Creates a new one if none was used before.
      Returns:
        diff options

    - #### getDisplayPath

          protected java.lang.String getDisplayPath(java.lang.String path)
                                             throws SVNException

      Throws:
        `SVNException`

    - #### setForcedBinaryDiff

          public void setForcedBinaryDiff(boolean forced)

      Sets whether binary files diff must be forced or not.
      Specified by:
        `setForcedBinaryDiff` in interface `ISVNDiffGenerator`
      Parameters:
        `forced` - whether to force binary diff or not

    - #### isForcedBinaryDiff

          public boolean isForcedBinaryDiff()

      Tells if this generator forced binary files diff.
      Specified by:
        `isForcedBinaryDiff` in interface `ISVNDiffGenerator`
      Returns:
        true if forces; otherwise false

    - #### displayPropDiff

          public void displayPropDiff(java.lang.String path,
                             SVNProperties baseProps,
                             SVNProperties diff,
                             java.io.OutputStream result)
                               throws SVNException

      Produces properties difference and writes it to `result`.
      Specified by:
        `displayPropDiff` in interface `ISVNDiffGenerator`
      Parameters:
        `path` -
        `baseProps` -
        `diff` -
        `result` -
      Throws:
        `SVNException` - in the following cases:
        exception with `SVNErrorCode.IO_ERROR` error code - if an I\O error occurred

    - #### getBasePath

          protected java.io.File getBasePath()

    - #### displayFileDiff

          public void displayFileDiff(java.lang.String path,
                             java.io.File file1,
                             java.io.File file2,
                             java.lang.String rev1,
                             java.lang.String rev2,
                             java.lang.String mimeType1,
                             java.lang.String mimeType2,
                             java.io.OutputStream result)
                               throws SVNException

      Writes the difference between `file1` and `file2` as they are seen in `rev1` and `rev2` to `result`.
      Specified by:
        `displayFileDiff` in interface `ISVNDiffGenerator`
      Parameters:
        `path` -
        `file1` -
        `file2` -
        `rev1` -
        `rev2` -
        `mimeType1` -
        `mimeType2` -
        `result` -
      Throws:
        `SVNException` - in the following cases:
        exception with `SVNErrorCode.EXTERNAL_PROGRAM` error code - if an external diff program exited with an error code value different from `0` and `1`
        exception with `SVNErrorCode.IO_ERROR` error code - if an I\O error occurred

    - #### setEncoding

          public void setEncoding(java.lang.String encoding)

      Sets the encoding to use for diff output.
      Specified by:
        `setEncoding` in interface `ISVNDiffGenerator`
      Parameters:
        `encoding` - charset name

    - #### getEncoding

          public java.lang.String getEncoding()

      Returns the encoding used for diff output.
      Specified by:
        `getEncoding` in interface `ISVNDiffGenerator`
      Returns:
        charset name

    - #### hasEncoding

          public boolean hasEncoding()

      Says whether this generator is using any special (non-native) charset for outputting diffs.
      Returns:
        true if yes; otherwise false

    - #### setEOL

          public void setEOL(byte[] eol)

      Sets the EOL bytes to use in diff output.
      Specified by:
        `setEOL` in interface `ISVNDiffGenerator`
      Parameters:
        `eol` - EOL bytes

    - #### getEOL

          public byte[] getEOL()

      Returns the EOL marker bytes being in use. If no EOL bytes were provided, uses `native EOL` fetched from the options.
      Specified by:
        `getEOL` in interface `ISVNDiffGenerator`
      Returns:
        EOL bytes

    - #### createTempDirectory

          public java.io.File createTempDirectory()
                                           throws SVNException

      Creates a temporary directory for diff files.
      Specified by:
        `createTempDirectory` in interface `ISVNDiffGenerator`
      Returns:
        returns the temp directory
      Throws:
        `SVNException`

    - #### isDiffUnversioned

          public boolean isDiffUnversioned()

      Says if unversioned files are also diffed or ignored.

      By default unversioned files are ignored.

      Specified by:
        `isDiffUnversioned` in interface `ISVNDiffGenerator`
      Returns:
        true if diffed, false if ignored
      See Also:
        `setDiffUnversioned(boolean)`

    - #### setDiffUnversioned

          public void setDiffUnversioned(boolean diffUnversioned)

      Includes or not unversioned files into diff processing.

      If a diff operation is invoked on a versioned directory and `diffUnversioned` is true then all unversioned files that may be met in the directory will be processed as added. Otherwise if `diffUnversioned` is false such files are ignored.

      By default unversioned files are ignored.

      Specified by:
        `setDiffUnversioned` in interface `ISVNDiffGenerator`
      Parameters:
        `diffUnversioned` - controls whether to diff unversioned files or not
      See Also:
        `isDiffUnversioned()`

    - #### displayDeletedDirectory

          public void displayDeletedDirectory(java.lang.String path,
                                     java.lang.String rev1,
                                     java.lang.String rev2)
                                       throws SVNException

      Does nothing.
      Specified by:
        `displayDeletedDirectory` in interface `ISVNDiffGenerator`
      Parameters:
        `path` - a directory path
        `rev1` - the first diff revision
        `rev2` - the second diff revision
      Throws:
        `SVNException`

    - #### displayAddedDirectory

          public void displayAddedDirectory(java.lang.String path,
                                   java.lang.String rev1,
                                   java.lang.String rev2)
                                     throws SVNException

      Does nothing.
      Specified by:
        `displayAddedDirectory` in interface `ISVNDiffGenerator`
      Parameters:
        `path` - a directory path
        `rev1` - the first diff revision
        `rev2` - the second diff revision
      Throws:
        `SVNException`

    - #### getExternalDiffCommand

          protected java.lang.String getExternalDiffCommand()

    - #### getOptions

          protected ISVNOptions getOptions()

    - #### displayBinary

          protected void displayBinary(java.io.OutputStream os,
                           java.lang.String mimeType1,
                           java.lang.String mimeType2)
                                throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### displayHeader

          protected boolean displayHeader(java.io.OutputStream os,
                              java.lang.String path,
                              boolean deleted)
                                   throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### displayHeaderFields

          protected void displayHeaderFields(java.io.OutputStream os,
                                 java.lang.String label1,
                                 java.lang.String label2)
                                      throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### isHeaderForced

          protected boolean isHeaderForced(java.io.File file1,
                               java.io.File file2)

    - #### useLocalFileSeparatorChar

          protected boolean useLocalFileSeparatorChar()

    - #### getLabel

          protected java.lang.String getLabel(java.lang.String path,
                                  java.lang.String revToken)

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