org.tmatesoft.svn.core

Class SVNAnnotationGenerator

Implemented Interfaces:
ISVNDeltaConsumer, ISVNFileRevisionHandler

public class SVNAnnotationGenerator
extends Object
implements ISVNFileRevisionHandler

The SVNAnnotationGenerator class is used to annotate files - that is to place author and revision information in-line for the specified file.

Since SVNAnnotationGenerator implements ISVNFileRevisionHandler, it is merely passed to a getFileRevisions() method of SVNRepository. After that you handle the resultant annotated file line-by-line providing an ISVNAnnotateHandler implementation to the reportAnnotations() method:

 import org.tmatesoft.svn.core.SVNAnnotationGenerator;
 import org.tmatesoft.svn.core.io.SVNRepositoryFactory;
 import org.tmatesoft.svn.core.io.SVNRepository;
 import org.tmatesoft.svn.core.wc.SVNAnnotateHandler;
 ...
 
     File tmpFile;
     SVNRepository repos;
     ISVNAnnotateHandler annotateHandler;
     ISVNEventHandler cancelHandler;
     long startRev = 0;
     long endRev = 150;
     ...
     
     SVNAnnotationGenerator generator = new SVNAnnotationGenerator(path, tmpFile, cancelHandler);
     try {
         repos.getFileRevisions("", startRev, endRev, generator);
         generator.reportAnnotations(annotateHandler, null);
     } finally {
         generator.dispose();
     }
 ...
Version:
1.1.1
Author:
TMate Software Ltd.

Constructor Summary

SVNAnnotationGenerator(String path, File tmpDirectory, long startRevision, boolean force, ISVNEventHandler cancelBaton)
Constructs an annotation generator object.
SVNAnnotationGenerator(String path, File tmpDirectory, long startRevision, boolean force, SVNDiffOptions diffOptions, ISVNEventHandler cancelBaton)
Constructs an annotation generator object.
SVNAnnotationGenerator(String path, File tmpDirectory, long startRevision, ISVNEventHandler cancelBaton)
Constructs an annotation generator object.

Method Summary

void
applyTextDelta(String token, String baseChecksum)
Starts applying text delta(s) to an opened file.
void
closeRevision(String token)
Does nothing.
void
dispose()
Finalizes an annotation operation releasing resources involved by this generator.
void
openRevision(SVNFileRevision fileRevision)
void
reportAnnotations(ISVNAnnotateHandler handler, String inputEncoding)
Dispatches file lines along with author & revision info to the provided annotation handler.
OutputStream
textDeltaChunk(String token, SVNDiffWindow diffWindow)
Collects a next delta chunk.
void
textDeltaEnd(String token)
Finalizes collecting text delta(s).

Constructor Details

SVNAnnotationGenerator

public SVNAnnotationGenerator(String path,
                              File tmpDirectory,
                              long startRevision,
                              boolean force,
                              ISVNEventHandler cancelBaton)
Constructs an annotation generator object.
Parameters:
path - a file path (relative to a repository location)
tmpDirectory - a revision to stop at
startRevision - a start revision to begin annotation with
force - forces binary files processing
cancelBaton - a baton which is used to check if an operation is cancelled

SVNAnnotationGenerator

public SVNAnnotationGenerator(String path,
                              File tmpDirectory,
                              long startRevision,
                              boolean force,
                              SVNDiffOptions diffOptions,
                              ISVNEventHandler cancelBaton)
Constructs an annotation generator object.
Parameters:
path - a file path (relative to a repository location)
tmpDirectory - a revision to stop at
startRevision - a start revision to begin annotation with
force - forces binary files processing
diffOptions - diff options
cancelBaton - a baton which is used to check if an operation is cancelled

SVNAnnotationGenerator

public SVNAnnotationGenerator(String path,
                              File tmpDirectory,
                              long startRevision,
                              ISVNEventHandler cancelBaton)
Constructs an annotation generator object.

This constructor is equivalent to SVNAnnotationGenerator(path, tmpDirectory, startRevision, false, cancelBaton).

Parameters:
path - a file path (relative to a repository location)
tmpDirectory - a revision to stop at
startRevision - a start revision to begin annotation with
cancelBaton - a baton which is used to check if an operation is cancelled

Method Details

applyTextDelta

public void applyTextDelta(String token,
                           String baseChecksum)
            throws SVNException
Starts applying text delta(s) to an opened file.
Specified by:
applyTextDelta in interface ISVNDeltaConsumer
Parameters:
baseChecksum - an MD5 checksum for the base file contents (before the file is changed)
Throws:
SVNException - if the calculated base file checksum didn't match the expected baseChecksum

closeRevision

public void closeRevision(String token)
            throws SVNException
Does nothing.
Specified by:
closeRevision in interface ISVNFileRevisionHandler
Parameters:
token -
Throws:
SVNException -

dispose

public void dispose()

openRevision

public void openRevision(SVNFileRevision fileRevision)
            throws SVNException
Specified by:
openRevision in interface ISVNFileRevisionHandler
Parameters:
fileRevision -
Throws:
SVNException - if one of the following occurs:
  • the file is binary (not text)
  • operation is cancelled

reportAnnotations

public void reportAnnotations(ISVNAnnotateHandler handler,
                              String inputEncoding)
            throws SVNException
Dispatches file lines along with author & revision info to the provided annotation handler.

If inputEncoding is null then "file.encoding" system property is used.

Parameters:
handler - an annotation handler that processes file lines with author & revision info
inputEncoding - a desired character set (encoding) of text lines
Throws:
SVNException -

textDeltaChunk

public OutputStream textDeltaChunk(String token,
                                   SVNDiffWindow diffWindow)
            throws SVNException
Collects a next delta chunk. The return type is nomore relevant and is left only for backward compatibility. So, the return value may be just null. Otherwise if it's not null, the stream will be immediately closed.

If there are more than one windows for the file, this method is called several times.

Specified by:
textDeltaChunk in interface ISVNDeltaConsumer
Parameters:
diffWindow - a next diff window
Returns:
an output stream
Throws:
SVNException -

textDeltaEnd

public void textDeltaEnd(String token)
            throws SVNException
Finalizes collecting text delta(s).
Specified by:
textDeltaEnd in interface ISVNDeltaConsumer
Parameters:
Throws:
SVNException -

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