Class BazaarDiffConsumer
- java.lang.Object
-
- org.apache.maven.scm.util.AbstractConsumer
-
- org.apache.maven.scm.provider.bazaar.command.BazaarConsumer
-
- org.apache.maven.scm.provider.bazaar.command.diff.BazaarDiffConsumer
-
- All Implemented Interfaces:
org.codehaus.plexus.util.cli.StreamConsumer
public class BazaarDiffConsumer extends BazaarConsumer
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String
ADDED_FILE_TOKEN
private static java.lang.String
ADDED_LINE_TOKEN
private java.util.List<ScmFile>
changedFiles
private java.lang.StringBuilder
currentDifference
private java.lang.String
currentFile
private static java.lang.String
DELETED_FILE_TOKEN
private java.util.Map<java.lang.String,java.lang.CharSequence>
differences
private static java.lang.String
FROM_FILE_TOKEN
private ScmLogger
logger
private static java.lang.String
MODIFIED_FILE_TOKEN
private static java.lang.String
NO_NEWLINE_TOKEN
private java.lang.StringBuilder
patch
private static java.lang.String
RANGE_TOKEN
private static java.lang.String
REMOVED_LINE_TOKEN
private static java.lang.String
TO_FILE_TOKEN
private static java.lang.String
UNCHANGED_LINE_TOKEN
private java.io.File
workingDirectory
-
Constructor Summary
Constructors Constructor Description BazaarDiffConsumer(ScmLogger logger, java.io.File workingDirectory)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private boolean
addChangedFile(ScmFileStatus status, java.lang.String tmpLine)
private void
addChangedFile(ScmFileStatus status, java.lang.String line, java.lang.String tmpLine)
This method takes into account two types of diff output.void
doConsume(ScmFileStatus status, java.lang.String line)
java.util.List<ScmFile>
getChangedFiles()
java.util.Map<java.lang.String,java.lang.CharSequence>
getDifferences()
java.lang.String
getPatch()
-
Methods inherited from class org.apache.maven.scm.provider.bazaar.command.BazaarConsumer
consumeLine, getStdErr
-
Methods inherited from class org.apache.maven.scm.util.AbstractConsumer
getLogger, parseDate, parseDate, setLogger
-
-
-
-
Field Detail
-
MODIFIED_FILE_TOKEN
private static final java.lang.String MODIFIED_FILE_TOKEN
- See Also:
- Constant Field Values
-
ADDED_FILE_TOKEN
private static final java.lang.String ADDED_FILE_TOKEN
- See Also:
- Constant Field Values
-
DELETED_FILE_TOKEN
private static final java.lang.String DELETED_FILE_TOKEN
- See Also:
- Constant Field Values
-
NO_NEWLINE_TOKEN
private static final java.lang.String NO_NEWLINE_TOKEN
- See Also:
- Constant Field Values
-
FROM_FILE_TOKEN
private static final java.lang.String FROM_FILE_TOKEN
- See Also:
- Constant Field Values
-
TO_FILE_TOKEN
private static final java.lang.String TO_FILE_TOKEN
- See Also:
- Constant Field Values
-
ADDED_LINE_TOKEN
private static final java.lang.String ADDED_LINE_TOKEN
- See Also:
- Constant Field Values
-
REMOVED_LINE_TOKEN
private static final java.lang.String REMOVED_LINE_TOKEN
- See Also:
- Constant Field Values
-
UNCHANGED_LINE_TOKEN
private static final java.lang.String UNCHANGED_LINE_TOKEN
- See Also:
- Constant Field Values
-
RANGE_TOKEN
private static final java.lang.String RANGE_TOKEN
- See Also:
- Constant Field Values
-
logger
private ScmLogger logger
-
workingDirectory
private java.io.File workingDirectory
-
currentFile
private java.lang.String currentFile
-
currentDifference
private java.lang.StringBuilder currentDifference
-
changedFiles
private java.util.List<ScmFile> changedFiles
-
differences
private java.util.Map<java.lang.String,java.lang.CharSequence> differences
-
patch
private java.lang.StringBuilder patch
-
-
Constructor Detail
-
BazaarDiffConsumer
public BazaarDiffConsumer(ScmLogger logger, java.io.File workingDirectory)
-
-
Method Detail
-
doConsume
public void doConsume(ScmFileStatus status, java.lang.String line)
- Overrides:
doConsume
in classBazaarConsumer
-
addChangedFile
private void addChangedFile(ScmFileStatus status, java.lang.String line, java.lang.String tmpLine)
This method takes into account two types of diff output.
- Bazaar 0.7 format: dir/dir/myfile
- Bazaar 0.8 format: a/dir/dir/myfile- Parameters:
status
- Eg. modified or addedline
- The original bazaar output to process (for logging)tmpLine
- The bazaar output to process
-
addChangedFile
private boolean addChangedFile(ScmFileStatus status, java.lang.String tmpLine)
- Parameters:
status
-tmpLine
-- Returns:
- True if tmpLine was a valid file and thus added to the changeset
-
getChangedFiles
public java.util.List<ScmFile> getChangedFiles()
-
getDifferences
public java.util.Map<java.lang.String,java.lang.CharSequence> getDifferences()
-
getPatch
public java.lang.String getPatch()
-
-