public abstract class AbstractDiffContentCallback extends Object implements DiffContentCallback
DiffContentCallback
that provides no-op implementations for all methods.Constructor and Description |
---|
AbstractDiffContentCallback() |
Modifier and Type | Method and Description |
---|---|
void |
offerThreads(Stream<CommentThread> threads)
Offers
threads for any comments which should be included in the diff to the callback. |
void |
onBinary(Path src,
Path dst)
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 final
DiffContentCallback.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 |
onSegmentStart(DiffSegmentType type)
Called to mark the start of a new segment within the current hunk, containing one or more contiguous lines which
all share the same
type . |
void |
onStart(DiffContext context)
Called before the first
DiffContentCallback.onDiffStart(Path, Path) . |
public void offerThreads(@Nonnull Stream<CommentThread> threads) throws IOException
DiffContentCallback
threads
for any comments which should be included in the diff to the callback.
Threads with both File
and line
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, the paths
of the anchors may reference
any of the files whose diffs will follow. Reconciling anchors to diffs is left to the implementation.
offerThreads
in interface DiffContentCallback
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 onceIOException
- may be thrown by implementations which perform I/O.public void onBinary(@Nullable Path src, @Nullable Path dst) throws IOException
DiffContentCallback
onBinary
in interface DiffContentCallback
src
- the source binary filedst
- the destination binary fileIOException
- may be thrown by implementations which perform I/O.public void onDiffEnd(boolean truncated) throws IOException
DiffContentCallback
onDiffEnd
in interface DiffContentCallback
truncated
- true
if any segment or hunk in the diff had to be truncated; otherwise, false
IOException
- may be thrown by implementations which perform I/O.public void onDiffStart(@Nullable Path src, @Nullable Path dst) throws IOException
DiffContentCallback
repository
, are provided.
onDiffStart
in interface DiffContentCallback
src
- the source file being compareddst
- the destination file being comparedIOException
- may be thrown by implementations which perform I/O.public void onEnd(@Nonnull DiffSummary summary) throws IOException
DiffContentCallback
DiffContentCallback.onDiffEnd(boolean)
, after all diffs have been streamed.onEnd
in interface DiffContentCallback
summary
- ignoredIOException
- may be thrown by derived classespublic void onHunkEnd(boolean truncated) throws IOException
DiffContentCallback
onHunkEnd
in interface DiffContentCallback
truncated
- true
if any segment in the hunk had to be truncated; otherwise, false
IOException
- may be thrown by implementations which perform I/O.public void onHunkStart(int srcLine, int srcSpan, int dstLine, int dstSpan, @Nullable String context) throws IOException
DiffContentCallback
onHunkStart
in interface DiffContentCallback
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 linesIOException
- may be thrown by derived classespublic void onSegmentEnd(boolean truncated) throws IOException
DiffContentCallback
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.
onSegmentEnd
in interface DiffContentCallback
truncated
- true
if the overall segment exceeded the maximum allowed lines, indicating one or more
lines were omitted from the segment; otherwise false
to indicate all lines were sentIOException
- may be thrown by implementations which perform I/O.public void onSegmentLine(@Nonnull String line, @Nullable ConflictMarker marker, boolean truncated) throws IOException
DiffContentCallback
Pull request
diffs may contain conflicts, if the pull request
cannot be merged cleanly. The marker
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 to true
to indicate the line is not complete.
onSegmentLine
in interface DiffContentCallback
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 completeIOException
- may be thrown by implementations which perform I/O.public void onSegmentStart(@Nonnull DiffSegmentType type) throws IOException
DiffContentCallback
type
.onSegmentStart
in interface DiffContentCallback
type
- the shared type for all lines in the new segmentIOException
- may be thrown by implementations which perform I/O.public void onStart(@Nonnull DiffContext context) throws IOException
DiffContentCallback
DiffContentCallback.onDiffStart(Path, Path)
.onStart
in interface DiffContentCallback
context
- ignoredIOException
- may be thrown by derived classesCopyright © 2022 Atlassian. All rights reserved.