Package org.apache.commons.net.nntp
Class Threader
java.lang.Object
org.apache.commons.net.nntp.Threader
This is an implementation of a message threading algorithm, as originally devised by Zamie Zawinski.
See http://www.jwz.org/doc/threading.html for details.
For his Java implementation, see
http://lxr.mozilla.org/mozilla/source/grendel/sources/grendel/view/Threader.java
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate void
buildContainer
(Threadable threadable, HashMap<String, NntpThreadContainer> idTable) private NntpThreadContainer
findRootSet
(HashMap<String, NntpThreadContainer> idTable) Find the root set of all existing ThreadContainersprivate void
If any two members of the root set have the same subject, merge them.private void
Delete any empty or dummy ThreadContainersthread
(Iterable<? extends Threadable> messages) The client passes in a list of Iterable objects, and the Threader constructs a connected 'graph' of messagesthread
(List<? extends Threadable> messages) The client passes in a list of Threadable objects, and the Threader constructs a connected 'graph' of messagesthread
(Threadable[] messages) Deprecated.
-
Constructor Details
-
Threader
public Threader()
-
-
Method Details
-
buildContainer
- Parameters:
threadable
-idTable
-
-
findRootSet
Find the root set of all existing ThreadContainers- Parameters:
idTable
-- Returns:
- root the NntpThreadContainer representing the root node
-
gatherSubjects
If any two members of the root set have the same subject, merge them. This is to attempt to accomodate messages without References: headers.- Parameters:
root
-
-
pruneEmptyContainers
Delete any empty or dummy ThreadContainers- Parameters:
parent
-
-
thread
The client passes in a list of Iterable objects, and the Threader constructs a connected 'graph' of messages- Parameters:
messages
- iterable of messages to thread, must not be empty- Returns:
- null if messages == null or root.child == null or messages list is empty
- Since:
- 3.0
-
thread
The client passes in a list of Threadable objects, and the Threader constructs a connected 'graph' of messages- Parameters:
messages
- list of messages to thread, must not be empty- Returns:
- null if messages == null or root.child == null or messages list is empty
- Since:
- 2.2
-
thread
Deprecated.(2.2) preferthread(List)
The client passes in an array of Threadable objects, and the Threader constructs a connected 'graph' of messages- Parameters:
messages
- array of messages to thread, must not be empty- Returns:
- null if messages == null or root.child == null or messages array is empty
-
thread(List)