1 25 26 package net.killingar.forum.internal; 27 28 import java.util.Iterator ; 29 30 public class FilterMessagesIterator implements Iterator 31 { 32 ParentIDItemTreeNode next; 33 Iterator i; 34 boolean showHidden; 35 37 public FilterMessagesIterator(boolean inShowHidden, Iterator 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 next() 52 { 53 if (next == null) 54 throw new IllegalStateException (); 55 56 return nextImpl(); 57 } 58 59 private Object 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 86 return ret; 87 } 88 89 public void remove() 90 { 91 throw new UnsupportedOperationException (); 92 } 93 } 94 | Popular Tags |