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 class _FacetsAndChildrenIterator implements Iterator<UIComponent>
27 {
28 private Iterator<UIComponent> _facetsIterator;
29 private Iterator<UIComponent> _childrenIterator;
30
31 _FacetsAndChildrenIterator(Map<String, UIComponent> facetMap, List<UIComponent> childrenList)
32 {
33 _facetsIterator = facetMap != null ? facetMap.values().iterator() : null;
34 _childrenIterator = childrenList != null ? childrenList.iterator() : null;
35 }
36
37 @Override
38 public boolean hasNext()
39 {
40 boolean hasNext = (_facetsIterator != null && _facetsIterator.hasNext())
41 || (_childrenIterator != null && _childrenIterator.hasNext());
42 if (!hasNext)
43 {
44 _facetsIterator = null;
45 _childrenIterator = null;
46 }
47
48 return hasNext;
49 }
50
51 @Override
52 public UIComponent next()
53 {
54 if (_facetsIterator != null && _facetsIterator.hasNext())
55 {
56 return _facetsIterator.next();
57 }
58 else if (_childrenIterator != null && _childrenIterator.hasNext())
59 {
60 return _childrenIterator.next();
61 }
62 else
63 {
64 throw new NoSuchElementException();
65 }
66 }
67
68 @Override
69 public void remove()
70 {
71 throw new UnsupportedOperationException(this.getClass().getName() + " UnsupportedOperationException");
72 }
73 }