1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package javax.faces.component;
20
21 import java.util.Iterator;
22 import java.util.List;
23 import java.util.Map;
24 import java.util.NoSuchElementException;
25
26
27
28
29
30 class _FacetsAndChildrenIterator implements Iterator<UIComponent>
31 {
32 private Iterator<UIComponent> _facetsIterator;
33 private Iterator<UIComponent> _childrenIterator;
34
35 _FacetsAndChildrenIterator(Map<String, UIComponent> facetMap, List<UIComponent> childrenList)
36 {
37 _facetsIterator = facetMap != null ? facetMap.values().iterator() : null;
38 _childrenIterator = childrenList != null ? childrenList.iterator() : null;
39 }
40
41 public boolean hasNext()
42 {
43 boolean hasNext = (_facetsIterator != null && _facetsIterator.hasNext())
44 || (_childrenIterator != null && _childrenIterator.hasNext());
45 if (!hasNext)
46 {
47 _facetsIterator = null;
48 _childrenIterator = null;
49 }
50
51 return hasNext;
52 }
53
54 public UIComponent next()
55 {
56 if (_facetsIterator != null && _facetsIterator.hasNext())
57 {
58 return _facetsIterator.next();
59 }
60 else if (_childrenIterator != null && _childrenIterator.hasNext())
61 {
62 return _childrenIterator.next();
63 }
64 else
65 {
66 throw new NoSuchElementException();
67 }
68 }
69
70 public void remove()
71 {
72 throw new UnsupportedOperationException(this.getClass().getName() + " UnsupportedOperationException");
73 }
74 }