Class SvnNewDiffGenerator

java.lang.Object
org.tmatesoft.svn.core.internal.wc2.ng.SvnNewDiffGenerator
All Implemented Interfaces:
ISvnPropertiesDiffHandler, ISVNDiffGenerator

public class SvnNewDiffGenerator extends java.lang.Object implements ISVNDiffGenerator, ISvnPropertiesDiffHandler
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private boolean
     
    private boolean
     
    private boolean
     
    private boolean
     
    private final ISvnDiffGenerator
     
     
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    java.io.File
    Creates a temporary directory (when necessary) where temporary files will be created.
    void
    displayAddedDirectory(java.lang.String path, java.lang.String rev1, java.lang.String rev2)
    Notifies this generator that the directory was added in revision rev2.
    void
    displayDeletedDirectory(java.lang.String path, java.lang.String rev1, java.lang.String rev2)
    Notifies this generator that the directory was deleted in revision rev2.
    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)
    Generates and writes differences between two files to the specified output stream.
    void
    displayPropDiff(java.lang.String path, SVNProperties baseProps, SVNProperties diff, java.io.OutputStream result)
    Writes the differences in file properties to the specified output stream.
    private SvnTarget
    getAbsoluteTarget(java.lang.String path)
     
     
    java.lang.String
    Gets the encoding charset being in use for a diff output.
    byte[]
    Returns the EOL marker bytes used in diff output.
    private SvnTarget
    getTarget(java.lang.String path)
     
    void
    handlePropertiesDiff(SVNProperties originalProperties, SVNProperties propChanges)
     
    void
    init(java.lang.String anchorPath1, java.lang.String anchorPath2)
    Initializes the driver setting up the paths/URLs that should be compared, or root paths/URLs for those paths to which a diff operation should be restricted.
    boolean
    Tells whether added files are enabled to be diffed.
    boolean
    Tells whether copied files are enabled to be diffed against their copy sources.
    boolean
    Tells whether deleted files are enabled to be diffed.
    boolean
    Says if unversioned files are also diffed or ignored.
    boolean
    Tells whether to force diff even if files are binary.
    void
    setBasePath(java.io.File basePath)
    Sets the root path for this diff generator.
    void
    setDiffAdded(boolean isDiffAdded)
    Enables or disables generating differences for added files.
    void
    setDiffCopied(boolean isDiffCopied)
    Enables or disables generating differences against copy source for copied files.
    void
    setDiffDeleted(boolean isDiffDeleted)
    Enables or disables generating differences for deleted files.
    void
    setDiffUnversioned(boolean diffUnversioned)
    Includes or not unversioned files into diff processing.
    void
    setEncoding(java.lang.String encoding)
    Sets the encoding charset to be used for a diff output.
    void
    setEOL(byte[] eol)
    Sets the EOL marker bytes to use in diff output.
    void
    setForcedBinaryDiff(boolean forced)
    Enables or disables generating differnces between files having a binary MIME type.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • generator

      private final ISvnDiffGenerator generator
    • diffDeleted

      private boolean diffDeleted
    • diffAdded

      private boolean diffAdded
    • diffCopied

      private boolean diffCopied
    • diffUnversioned

      private boolean diffUnversioned
    • lastOriginalProperties

      private SVNProperties lastOriginalProperties
    • lastPropChanges

      private SVNProperties lastPropChanges
  • Constructor Details

  • Method Details

    • getDelegate

      public ISvnDiffGenerator getDelegate()
    • init

      public void init(java.lang.String anchorPath1, java.lang.String anchorPath2)
      Description copied from interface: ISVNDiffGenerator
      Initializes the driver setting up the paths/URLs that should be compared, or root paths/URLs for those paths to which a diff operation should be restricted.

      These paths have got the same meaning as OLD-TGT (anchorPath1) and NEW-TGT (anchorPath2) in the SVN command line client's 'svn diff' command. So, they can be either local paths, or URLs pointing to repository locations. If one of them (or both) is a URL it may differ from that one passed to an appropriate doDiff() method of SVNDiffClient in that case when in a peg revision it's one URL, but in the target revision it was changed (moved?) to some other one. So, this method should receive the real one.

      Specified by:
      init in interface ISVNDiffGenerator
      Parameters:
      anchorPath1 - an old path/URL
      anchorPath2 - a new path/URL
    • setBasePath

      public void setBasePath(java.io.File basePath)
      Description copied from interface: ISVNDiffGenerator
      Sets the root path for this diff generator.

      This can be used to make all paths in a diff output be relative to this base path.

      Specified by:
      setBasePath in interface ISVNDiffGenerator
      Parameters:
      basePath - a base path for this driver
    • setForcedBinaryDiff

      public void setForcedBinaryDiff(boolean forced)
      Description copied from interface: ISVNDiffGenerator
      Enables or disables generating differnces between files having a binary MIME type.

      Like the '--force' option of the 'svn diff' command.

      Specified by:
      setForcedBinaryDiff in interface ISVNDiffGenerator
      Parameters:
      forced - if true binary files will also be diffed, otherwise not
    • setEncoding

      public void setEncoding(java.lang.String encoding)
      Description copied from interface: ISVNDiffGenerator
      Sets the encoding charset to be used for a diff output.
      Specified by:
      setEncoding in interface ISVNDiffGenerator
      Parameters:
      encoding - the name of a charset
    • getEncoding

      public java.lang.String getEncoding()
      Description copied from interface: ISVNDiffGenerator
      Gets the encoding charset being in use for a diff output.
      Specified by:
      getEncoding in interface ISVNDiffGenerator
      Returns:
      the name of the charset being in use
    • setEOL

      public void setEOL(byte[] eol)
      Description copied from interface: ISVNDiffGenerator
      Sets the EOL marker bytes to use in diff output.
      Specified by:
      setEOL in interface ISVNDiffGenerator
      Parameters:
      eol - EOL bytes
    • getEOL

      public byte[] getEOL()
      Description copied from interface: ISVNDiffGenerator
      Returns the EOL marker bytes used in diff output.
      Specified by:
      getEOL in interface ISVNDiffGenerator
      Returns:
      EOL bytes
    • setDiffDeleted

      public void setDiffDeleted(boolean isDiffDeleted)
      Description copied from interface: ISVNDiffGenerator
      Enables or disables generating differences for deleted files.
      Specified by:
      setDiffDeleted in interface ISVNDiffGenerator
      Parameters:
      isDiffDeleted - if true then deleted files will be diffed, otherwise not
      See Also:
    • isDiffDeleted

      public boolean isDiffDeleted()
      Description copied from interface: ISVNDiffGenerator
      Tells whether deleted files are enabled to be diffed.
      Specified by:
      isDiffDeleted in interface ISVNDiffGenerator
      Returns:
      true if deleted files should be diffed (the driver is set to generate differences for deleted files as well), otherwise false
      See Also:
    • setDiffAdded

      public void setDiffAdded(boolean isDiffAdded)
      Description copied from interface: ISVNDiffGenerator
      Enables or disables generating differences for added files.
      Specified by:
      setDiffAdded in interface ISVNDiffGenerator
      Parameters:
      isDiffAdded - if true then added files will be diffed, otherwise not
      See Also:
    • isDiffAdded

      public boolean isDiffAdded()
      Description copied from interface: ISVNDiffGenerator
      Tells whether added files are enabled to be diffed.
      Specified by:
      isDiffAdded in interface ISVNDiffGenerator
      Returns:
      true if added files should be diffed, otherwise false
      See Also:
    • setDiffCopied

      public void setDiffCopied(boolean isDiffCopied)
      Description copied from interface: ISVNDiffGenerator
      Enables or disables generating differences against copy source for copied files. This switch is relevant to SVNLookClient's diff operations.

      Like the '--diff-copy-from' option of the 'svnlook diff' command.

      Specified by:
      setDiffCopied in interface ISVNDiffGenerator
      Parameters:
      isDiffCopied - if true then copied files will be diffed against copy sources, otherwise they will be treated as newly added files
      See Also:
    • isDiffCopied

      public boolean isDiffCopied()
      Description copied from interface: ISVNDiffGenerator
      Tells whether copied files are enabled to be diffed against their copy sources. This switch is relevant to SVNLookClient's diff operations.
      Specified by:
      isDiffCopied in interface ISVNDiffGenerator
      Returns:
      true if copied files should be diffed against copy sources; false if copied files should be treated as newly added
      See Also:
    • setDiffUnversioned

      public void setDiffUnversioned(boolean diffUnversioned)
      Description copied from interface: ISVNDiffGenerator
      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.

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

      public boolean isDiffUnversioned()
      Description copied from interface: ISVNDiffGenerator
      Says if unversioned files are also diffed or ignored.
      Specified by:
      isDiffUnversioned in interface ISVNDiffGenerator
      Returns:
      true if diffed, false if ignored
      See Also:
    • createTempDirectory

      public java.io.File createTempDirectory() throws SVNException
      Description copied from interface: ISVNDiffGenerator
      Creates a temporary directory (when necessary) where temporary files will be created.

      This temporary directory exists till the end of the diff operation.

      Specified by:
      createTempDirectory in interface ISVNDiffGenerator
      Returns:
      an abstract pathname denoting a newly-created temporary directory
      Throws:
      SVNException - if a directory can not be created
    • displayPropDiff

      public void displayPropDiff(java.lang.String path, SVNProperties baseProps, SVNProperties diff, java.io.OutputStream result) throws SVNException
      Description copied from interface: ISVNDiffGenerator
      Writes the differences in file properties to the specified output stream.
      Specified by:
      displayPropDiff in interface ISVNDiffGenerator
      Parameters:
      path - a file path on which the property changes are written to the output
      baseProps - a Map of old properties (property names are mapped to their values)
      diff - a Map of changed properties (property names are mapped to their values)
      result - the target OutputStream where the differences will be written to
      Throws:
      SVNException - if can not save diff data
    • handlePropertiesDiff

      public void handlePropertiesDiff(SVNProperties originalProperties, SVNProperties propChanges)
      Specified by:
      handlePropertiesDiff in interface ISvnPropertiesDiffHandler
    • 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
      Description copied from interface: ISVNDiffGenerator
      Generates and writes differences between two files to the specified output stream.

      file1 or file2 may be temporary files crteated to get file contents from the repository (when running diff on URLs). These temporary files will be deleted with the temporary directory (created by ISVNDiffGenerator.createTempDirectory()) when the operation ends up.

      Specified by:
      displayFileDiff in interface ISVNDiffGenerator
      Parameters:
      path - a file path on which the differences are generated and written to the output
      file1 - a file with old contents
      file2 - a file with new contents
      rev1 - the first diff revision of file1
      rev2 - the second diff revision of file2
      mimeType1 - the MIME-type of file1
      mimeType2 - the MIME-type of file2
      result - the target OutputStream where the differences will be written to
      Throws:
      SVNException - if can not save diff data
    • displayDeletedDirectory

      public void displayDeletedDirectory(java.lang.String path, java.lang.String rev1, java.lang.String rev2) throws SVNException
      Description copied from interface: ISVNDiffGenerator
      Notifies this generator that the directory was deleted in revision rev2.
      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
      Description copied from interface: ISVNDiffGenerator
      Notifies this generator that the directory was added in revision rev2.
      Specified by:
      displayAddedDirectory in interface ISVNDiffGenerator
      Parameters:
      path - a directory path
      rev1 - the first diff revision
      rev2 - the second diff revision
      Throws:
      SVNException
    • isForcedBinaryDiff

      public boolean isForcedBinaryDiff()
      Description copied from interface: ISVNDiffGenerator
      Tells whether to force diff even if files are binary.
      Specified by:
      isForcedBinaryDiff in interface ISVNDiffGenerator
      Returns:
      true to force diff for binary files; otherwise false
    • getTarget

      private SvnTarget getTarget(java.lang.String path)
    • getAbsoluteTarget

      private SvnTarget getAbsoluteTarget(java.lang.String path)