Interface ISVNAnnotateHandler

  • All Known Implementing Classes:
    SVNBlameCommand, SvnOldAnnotate, SvnRemoteAnnotate, SVNXMLAnnotateHandler

    public interface ISVNAnnotateHandler
    The ISVNAnnotateHandler interface should be implemented to be further provided to SVNLogClient's doAnnotate() methods for processing annotation information per each text line.

    Here's an example code snippet:

     import org.tmatesoft.svn.core.wc.ISVNAnnotateHandler;
     import org.tmatesoft.svn.core.wc.SVNLogClient;
     ...
     
         SVNLogClient logClient;
         ...
         
         logClient.doAnnotate(new File("path/to/WC/file"), SVNRevision.HEAD, SVNRevision.create(0), 
                              SVNRevision.HEAD, new ISVNAnnotateHandler(){
                                  public void handleLine(Date date, long revision, 
                                                                String author, String line){
                                      //implement this method as you wish, for example:
                                      System.out.println(revision + 
                                                         "  " + 
                                                         author + 
                                                         "  " + 
                                                         date + 
                                                         "  " + 
                                                         line);
                                  }
                              });
         ...

    Since:
    1.2
    Version:
    1.3
    Author:
    TMate Software Ltd.
    See Also:
    SVNLogClient
    • Method Summary

      All Methods Instance Methods Abstract Methods Deprecated Methods 
      Modifier and Type Method Description
      void handleEOF()
      Handles the EOF met after the document contents.
      void handleLine​(java.util.Date date, long revision, java.lang.String author, java.lang.String line)
      void handleLine​(java.util.Date date, long revision, java.lang.String author, java.lang.String line, java.util.Date mergedDate, long mergedRevision, java.lang.String mergedAuthor, java.lang.String mergedPath, int lineNumber)
      Handles per line annotation information - that is information about who last committed (changed) this line, the revision and timestamp when it was last committed.
      boolean handleRevision​(java.util.Date date, long revision, java.lang.String author, java.io.File contents)
      Handles file information for a next revision.
    • Method Detail

      • handleLine

        void handleLine​(java.util.Date date,
                        long revision,
                        java.lang.String author,
                        java.lang.String line,
                        java.util.Date mergedDate,
                        long mergedRevision,
                        java.lang.String mergedAuthor,
                        java.lang.String mergedPath,
                        int lineNumber)
                 throws SVNException
        Handles per line annotation information - that is information about who last committed (changed) this line, the revision and timestamp when it was last committed.

        Parameters mergedDate, mergedRevision, mergedAuthor and mergedPath will be set only if the corresponding method doAnnotate of SVNLogClient was called with includeMergedRevisions set to true. Otherwise they are irrelevant.

        Note: if there is no blame information for this line, revision will be invalid and author and date will be null.

        Parameters:
        date - the time moment when changes to line were committed to the repository
        revision - the revision the changes were committed to
        author - the person who did those changes
        line - a text line of the target file (on which doAnnotate() was invoked)
        mergedDate - date when merge changes occurred
        mergedRevision - revision in which merge changes occurred
        mergedAuthor - author of merge
        mergedPath - absolute repository path of the merged file
        lineNumber - number of the file line for which this information is annotated
        Throws:
        SVNException
      • handleRevision

        boolean handleRevision​(java.util.Date date,
                               long revision,
                               java.lang.String author,
                               java.io.File contents)
                        throws SVNException
        Handles file information for a next revision. If this method returns true then file contents will be annotated for revision as well.
        Parameters:
        date - the time moment when changes to line were committed to the repository
        revision - the revision the changes were committed to
        author - the person who did those changes
        contents - temporary file with contents. This file shouldn't be used as persistent reference as it will be overwritten after this method exits and eventually deleted.
        Returns:
        true to annotate the file for revision
        Throws:
        SVNException
      • handleEOF

        void handleEOF()
                throws SVNException
        Handles the EOF met after the document contents.
        Throws:
        SVNException
        Since:
        1.2.0