public class

CommentChain

extends Object
implements Iterable<T>
java.lang.Object
   ↳ com.atlassian.bitbucket.comment.CommentChain<C extends com.atlassian.bitbucket.comment.Comment>

Class Overview

Performs a depth-first iteration given a starting set of comments. For example, consider the following comments:

 C1
   C1-R1
   C1-R2
 C2
   C2-R1
     C2-R1-R1
   C2-R2
     C2-R2-R1
       C2-R2-R1-R1
   C2-R3
 C3
 
new CommentChain(ImmutableList.of(c1, c2, c3)) would traverse the comments in the same order as reading that tree from the top to the bottom:
 C1 -> C1-R1 -> C1-R2 -> C2 -> C2-R1 -> C2-R1-R1 -> C2-R2 -> C2-R2-R1 -> C2-R2-R1-R1 -> C2-R3 -> C3
 
Notice that C2-R1-R1, the first reply to the first reply of the second comment, is traversed before C2-R2, the second reply to the second comment.

Note: This class supports any subtype C of Comment, under the assumption that all replies are consistently instances of C. Violating that assumption will result in ClassCastExceptions when iterating through the chain.

Summary

Public Methods
@Nonnull Iterator<C> iterator()
static <C extends Comment> CommentChain<C> of(Iterable<C> rootComments)
A convenience method for creating a new chain from the provided comments.
@Nonnull Stream<C> stream()
[Expand]
Inherited Methods
From class java.lang.Object
From interface java.lang.Iterable

Public Methods

@Nonnull public Iterator<C> iterator ()

public static CommentChain<C> of (Iterable<C> rootComments)

A convenience method for creating a new chain from the provided comments.

Parameters
rootComments the comments to use when creating the chain
Returns
  • a new chain

@Nonnull public Stream<C> stream ()