KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > killingar > forum > internal > FilterMessagesIterator


1 /* Copyright 2000-2005 Anders Hovmöller
2  *
3  * The person or persons who have associated their work with
4  * this document (the "Dedicator") hereby dedicate the entire
5  * copyright in the work of authorship identified below (the
6  * "Work") to the public domain.
7  *
8  * Dedicator makes this dedication for the benefit of the
9  * public at large and to the detriment of Dedicator's heirs
10  * and successors. Dedicator intends this dedication to be an
11  * overt act of relinquishment in perpetuity of all present
12  * and future rights under copyright law, whether vested or
13  * contingent, in the Work. Dedicator understands that such
14  * relinquishment of all rights includes the relinquishment of
15  * all rights to enforce (by lawsuit or otherwise) those
16  * copyrights in the Work.
17  *
18  * Dedicator recognizes that, once placed in the public
19  * domain, the Work may be freely reproduced, distributed,
20  * transmitted, used, modified, built upon, or otherwise
21  * exploited by anyone for any purpose, commercial or non-
22  * commercial, and in any way, including by methods that have
23  * not yet been invented or conceived.
24  */

25
26 package net.killingar.forum.internal;
27
28 import java.util.Iterator JavaDoc;
29
30 public class FilterMessagesIterator implements Iterator JavaDoc
31 {
32     ParentIDItemTreeNode next;
33     Iterator JavaDoc i;
34     boolean showHidden;
35     //int count = 0;
36

37     public FilterMessagesIterator(boolean inShowHidden, Iterator JavaDoc in)
38     {
39         i = in;
40         showHidden = inShowHidden;
41
42         if (in.hasNext())
43             nextImpl();
44     }
45
46     public boolean hasNext()
47     {
48         return next != null;
49     }
50
51     public Object JavaDoc next()
52     {
53         if (next == null)
54             throw new IllegalStateException JavaDoc();
55
56         return nextImpl();
57     }
58
59     private Object JavaDoc nextImpl()
60     {
61         ParentIDItemTreeNode ret = next;
62
63         if (showHidden)
64         {
65             if (i.hasNext())
66                 next = (ParentIDItemTreeNode)i.next();
67             else
68                 next = null;
69         }
70         else
71         {
72             next = null;
73             while (i.hasNext())
74             {
75                 ParentIDItemTreeNode foo = (ParentIDItemTreeNode)i.next();
76                 if (foo.item != null && ((Message)foo.item).getVisible())
77                 {
78                     next = foo;
79                     break;
80                 }
81             }
82         }
83
84         //count++;
85

86         return ret;
87     }
88
89     public void remove()
90     {
91         throw new UnsupportedOperationException JavaDoc();
92     }
93 }
94
Popular Tags