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 return Collections.emptyList();
53 }
54
55
56
57 if (metadataFacet.getChildCount() > 0)
58 {
59 children = metadataFacet.getChildren().iterator();
60
61 while (children.hasNext()) {
62 UIComponent component = children.next();
63
64 if (result == null)
65 {
66 result = new LinkedList<UIViewParameter>();
67 }
68
69 if (component instanceof UIViewParameter) {
70 result.add ((UIViewParameter) component);
71 }
72 }
73 }
74
75
76
77 if (result == null)
78 {
79 return Collections.emptyList();
80 }
81 else
82 {
83 return Collections.unmodifiableCollection (result);
84 }
85 }
86 }