Class AbstractDiffContentCallback
- All Implemented Interfaces:
DiffContentCallback
DiffContentCallback
that provides no-op implementations for all methods.-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
offerThreads
(Stream<CommentThread> threads) Offersthreads
for any comments which should be included in the diff to the callback.void
Called to indicate a binary file differs.void
onDiffEnd
(boolean truncated) Called upon reaching the end of the current overall diff, indicating no more changes exist for the current source/destination pair.void
onDiffStart
(Path src, Path dst) Called to mark the start of an overall diff.void
onEnd
(DiffSummary summary) Called after the finalDiffContentCallback.onDiffEnd(boolean)
, after all diffs have been streamed.void
onHunkEnd
(boolean truncated) Called upon reaching the end of a hunk of segments within the current overall diff.void
onHunkStart
(int srcLine, int srcSpan, int dstLine, int dstSpan, String context) Called to mark the start of a new hunk within the current overall diff, containing one or more contiguous segments of lines anchored at the provided line numbers in the source and destination files.void
onSegmentEnd
(boolean truncated) Called upon reaching the end of a segment within the current hunk, where a segment may end either because lines with a different type were encountered or because there are no more contiguous lines in the hunk.void
onSegmentLine
(String line, ConflictMarker marker, boolean truncated) Called to process a line within the current segment.void
Called to mark the start of a new segment within the current hunk, containing one or more contiguous lines which all share the sametype
.void
onStart
(DiffContext context) Called before the firstDiffContentCallback.onDiffStart(Path, Path)
.
-
Constructor Details
-
AbstractDiffContentCallback
public AbstractDiffContentCallback()
-
-
Method Details
-
offerThreads
Description copied from interface:DiffContentCallback
Offersthreads
for any comments which should be included in the diff to the callback. Threads with bothFile
andline
anchors may both be included in the provided stream.Note: If this method is going to be invoked, it will always be invoked before the first invocation of
DiffContentCallback.onDiffStart(Path, Path)
. This method will be called at most once. If multiple diffs are going to be output to the callback, thepaths
of the anchors may reference any of the files whose diffs will follow. Reconciling anchors to diffs is left to the implementation.- Specified by:
offerThreads
in interfaceDiffContentCallback
- Parameters:
threads
- a stream of zero or more threads describing comments within the diff or diffs that will be streamed to the callback. It can only be consumed once- Throws:
IOException
- may be thrown by implementations which perform I/O.- Since:
- 5.0
-
onBinary
Description copied from interface:DiffContentCallback
Called to indicate a binary file differs. The exact differences cannot be effectively conveyed, however, so no hunks/segments will be provided for binary files.- Specified by:
onBinary
in interfaceDiffContentCallback
- Parameters:
src
- the source binary filedst
- the destination binary file- Throws:
IOException
- may be thrown by implementations which perform I/O.
-
onDiffEnd
Description copied from interface:DiffContentCallback
Called upon reaching the end of the current overall diff, indicating no more changes exist for the current source/destination pair.- Specified by:
onDiffEnd
in interfaceDiffContentCallback
- Parameters:
truncated
-true
if any segment or hunk in the diff had to be truncated; otherwise,false
- Throws:
IOException
- may be thrown by implementations which perform I/O.
-
onDiffStart
Description copied from interface:DiffContentCallback
Called to mark the start of an overall diff. The source and destination paths being compared, relative to their containingrepository
, are provided.- Specified by:
onDiffStart
in interfaceDiffContentCallback
- Parameters:
src
- the source file being compareddst
- the destination file being compared- Throws:
IOException
- may be thrown by implementations which perform I/O.
-
onEnd
Description copied from interface:DiffContentCallback
Called after the finalDiffContentCallback.onDiffEnd(boolean)
, after all diffs have been streamed.- Specified by:
onEnd
in interfaceDiffContentCallback
- Parameters:
summary
- ignored- Throws:
IOException
- may be thrown by derived classes
-
onHunkEnd
Description copied from interface:DiffContentCallback
Called upon reaching the end of a hunk of segments within the current overall diff.- Specified by:
onHunkEnd
in interfaceDiffContentCallback
- Parameters:
truncated
-true
if any segment in the hunk had to be truncated; otherwise,false
- Throws:
IOException
- may be thrown by implementations which perform I/O.
-
onHunkStart
public void onHunkStart(int srcLine, int srcSpan, int dstLine, int dstSpan, @Nullable String context) throws IOException Description copied from interface:DiffContentCallback
Called to mark the start of a new hunk within the current overall diff, containing one or more contiguous segments of lines anchored at the provided line numbers in the source and destination files.- Specified by:
onHunkStart
in interfaceDiffContentCallback
- Parameters:
srcLine
- the line in the source file at which the hunk startssrcSpan
- the number of lines spanned by this hunk in the source filedstLine
- the line in the destination file at which the hunk startsdstSpan
- the number of lines spanned by this hunk in the destination filecontext
- an optional context, such as a method or class name, for the hunk's lines- Throws:
IOException
- may be thrown by derived classes- Since:
- 5.5
-
onSegmentEnd
Description copied from interface:DiffContentCallback
Called upon reaching the end of a segment within the current hunk, where a segment may end either because lines with a different type were encountered or because there are no more contiguous lines in the hunk.Note: Internal restrictions may prevent streaming full segments if they are overly large. For example, if a new file containing tens of thousands of lines is added (or an existing file of such size is deleted), the resulting segment may be truncated.
- Specified by:
onSegmentEnd
in interfaceDiffContentCallback
- Parameters:
truncated
-true
if the overall segment exceeded the maximum allowed lines, indicating one or more lines were omitted from the segment; otherwisefalse
to indicate all lines were sent- Throws:
IOException
- may be thrown by implementations which perform I/O.
-
onSegmentLine
public void onSegmentLine(@Nonnull String line, @Nullable ConflictMarker marker, boolean truncated) throws IOException Description copied from interface:DiffContentCallback
Called to process a line within the current segment.Pull request
diffs may contain conflicts, if the pull request cannot be merged cleanly. Themarker
conveys this information.null
: The line is not conflictedConflictMarker.MARKER
: The line is a conflict markerConflictMarker.OURS
: The line is conflicting, and is present in the merge targetConflictMarker.THEIRS
: The line is conflicting, and is present in the merge source
Note: Internal restrictions may prevent receiving the full line if it contains too many characters. When this happens
truncated
will be set totrue
to indicate the line is not complete.- Specified by:
onSegmentLine
in interfaceDiffContentCallback
- Parameters:
line
- a single line of contentmarker
- indicates whether the line is conflicted and, if it is, which side of the conflict it's ontruncated
-true
if the line exceeded the maximum allowed length and was truncated; otherwise,false
to indicate the line is complete- Throws:
IOException
- may be thrown by implementations which perform I/O.
-
onSegmentStart
Description copied from interface:DiffContentCallback
Called to mark the start of a new segment within the current hunk, containing one or more contiguous lines which all share the sametype
.- Specified by:
onSegmentStart
in interfaceDiffContentCallback
- Parameters:
type
- the shared type for all lines in the new segment- Throws:
IOException
- may be thrown by implementations which perform I/O.
-
onStart
Description copied from interface:DiffContentCallback
Called before the firstDiffContentCallback.onDiffStart(Path, Path)
.- Specified by:
onStart
in interfaceDiffContentCallback
- Parameters:
context
- ignored- Throws:
IOException
- may be thrown by derived classes
-