public class CommentChain<C extends Comment> extends Object implements Iterable<C>
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 ClassCastException
s when iterating through the chain.
Modifier and Type | Method and Description |
---|---|
Iterator<C> |
iterator() |
static <C extends Comment> |
of(Iterable<C> rootComments)
A convenience method for creating a new
chain from the provided comments. |
Stream<C> |
stream() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
forEach, spliterator
public static <C extends Comment> CommentChain<C> of(@Nonnull Iterable<C> rootComments)
chain
from the provided comments.C
- an implementation of Comment
rootComments
- the comments to use when creating the chainCopyright © 2020 Atlassian. All rights reserved.