1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package javax.faces.view;
20
21 import java.util.Collection;
22 import java.util.Collections;
23 import java.util.Iterator;
24 import java.util.LinkedList;
25
26 import javax.faces.component.UIComponent;
27 import javax.faces.component.UIViewParameter;
28 import javax.faces.component.UIViewRoot;
29 import javax.faces.context.FacesContext;
30
31
32
33
34
35
36
37 public abstract class ViewMetadata
38 {
39 public abstract UIViewRoot createMetadataView(FacesContext context);
40
41 public abstract String getViewId();
42
43 public static Collection<UIViewParameter> getViewParameters(UIViewRoot root)
44 {
45 LinkedList<UIViewParameter> result = null;
46 UIComponent metadataFacet = root.getFacet (UIViewRoot.METADATA_FACET_NAME);
47 Iterator<UIComponent> children;
48
49 if (metadataFacet == null)
50 {
51
52
53 return Collections.emptyList();
54 }
55
56
57
58 if (metadataFacet.getChildCount() > 0)
59 {
60 children = metadataFacet.getChildren().iterator();
61
62 while (children.hasNext())
63 {
64 UIComponent component = children.next();
65
66 if (result == null)
67 {
68 result = new LinkedList<UIViewParameter>();
69 }
70
71 if (component instanceof UIViewParameter)
72 {
73 result.add ((UIViewParameter) component);
74 }
75 }
76 }
77
78
79
80 if (result == null)
81 {
82 return Collections.emptyList();
83 }
84 else
85 {
86 return Collections.unmodifiableCollection (result);
87 }
88 }
89 }