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
See Also:
SVNLogClient

Method Summary
 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()
Handles the EOF met after the document contents.

Since:
1.2.0