net.sf.statsvn.input
public class CacheBuilder extends Object
CVS log files include lines modified for each commit and binary status of a file while SVN log files do not offer this additional information.
StatSVN must query the Subversion repository for line counts using svn diff. However, this is very costly, performance-wise. Therefore, the decision was taken to persist this information in an XML file. This class receives information from (@link net.sf.statsvn.input.SvnXmlLineCountsFileHandler) to build a DOM-based xml structure. It also forwards line counts to the appropriate (@link net.sf.statsvn.input.FileBuilder).
Constructor and Description |
---|
CacheBuilder(SvnLogBuilder builder,
RepositoryFileManager repositoryFileManager)
Constructs the LineCountsBuilder by giving it a reference to the builder
currently in use.
|
Modifier and Type | Method and Description |
---|---|
void |
buildPath(String name,
String revision,
String binaryStatus)
Initializes the builder for subsequent invocations of (@link
#buildRevision(String, String, String)).
|
void |
buildRevision(String number,
String added,
String removed,
String binaryStatus)
Given the file specified by the preceeding invocation to (@link
#buildPath(String)), set the line counts for the given revision.
|
void |
buildRoot()
Builds the DOM root.
|
Document |
getDocument()
Returns the DOM object when building is complete.
|
boolean |
isBinary(String fileName,
String revisionNumber)
Checks the path's cached binary status.
|
void |
newRevision(String name,
String number,
String added,
String removed,
boolean binaryStatus)
Adds a revision to the DOM.
|
void |
updateBinaryStatus(Collection fileBuilders,
String revisionNumber)
Updates all paths in the DOM structure with the latest binary status
information from the working folder.
|
public CacheBuilder(SvnLogBuilder builder, RepositoryFileManager repositoryFileManager)
builder
- the SvnLogBuilder which contains all the FileBuilders.public void buildPath(String name, String revision, String binaryStatus)
name
- the filenamepublic void buildRevision(String number, String added, String removed, String binaryStatus)
number
- the revision numberadded
- the number of lines addedremoved
- the number of lines removed.public void buildRoot() throws ParserConfigurationException
ParserConfigurationException
public Document getDocument()
public void newRevision(String name, String number, String added, String removed, boolean binaryStatus)
name
- the filenamenumber
- the revision numberadded
- the number of lines addedremoved
- the number of lines removedpublic void updateBinaryStatus(Collection fileBuilders, String revisionNumber)
name
- the filenamenumber
- the revision numberadded
- the number of lines addedremoved
- the number of lines removedpublic boolean isBinary(String fileName, String revisionNumber)
fileName
- the path to be checkedrevisionNumber
- the revision of the path to be checked