org.tmatesoft.svn.core.wc

## Interface ISVNAnnotateHandler

All Known Implementing Classes:
  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

Methods
`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)` Deprecated. use `handleLine(Date, long, String, String, Date, long, String, String, int)` instead
`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)
                    throws SVNException

Deprecated. use `handleLine(Date, long, String, String, Date, long, String, String, int)` instead

Parameters:
  `date` -
  `revision` -
  `author` -
  `line` -
Throws:
  `SVNException`

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