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.beans.BeanInfo;
22 import java.io.IOException;
23 import java.net.MalformedURLException;
24 import java.util.List;
25 import java.util.Map;
26 import java.util.logging.Level;
27 import java.util.logging.Logger;
28
29 import javax.faces.application.Resource;
30 import javax.faces.component.UIComponent;
31 import javax.faces.component.UIViewRoot;
32 import javax.faces.context.FacesContext;
33
34
35
36
37 public abstract class ViewDeclarationLanguage
38 {
39
40
41
42 public static final String JSP_VIEW_DECLARATION_LANGUAGE_ID = "java.faces.JSP";
43
44
45
46
47 public static final String FACELETS_VIEW_DECLARATION_LANGUAGE_ID = "java.faces.Facelets";
48
49 public abstract void buildView(FacesContext context, UIViewRoot view) throws IOException;
50
51 public abstract UIViewRoot createView(FacesContext context, String viewId);
52
53 public abstract BeanInfo getComponentMetadata(FacesContext context, Resource componentResource);
54
55 public abstract Resource getScriptComponentResource(FacesContext context, Resource componentResource);
56
57 public abstract StateManagementStrategy getStateManagementStrategy(FacesContext context, String viewId);
58
59 public abstract ViewMetadata getViewMetadata(FacesContext context, String viewId);
60
61 public abstract void renderView(FacesContext context, UIViewRoot view) throws IOException;
62
63 public abstract UIViewRoot restoreView(FacesContext context, String viewId);
64
65 public void retargetAttachedObjects(FacesContext context, UIComponent topLevelComponent,
66 List<AttachedObjectHandler> handlers)
67 {
68 throw new UnsupportedOperationException();
69 }
70
71 public void retargetMethodExpressions(FacesContext context, UIComponent topLevelComponent)
72 {
73 throw new UnsupportedOperationException();
74 }
75
76
77
78
79
80
81 public String getId()
82 {
83 return this.getClass().getName();
84 }
85
86
87
88
89
90
91
92
93 public boolean viewExists(FacesContext facesContext, String viewId)
94 {
95 try
96 {
97 return facesContext.getExternalContext().getResource(viewId) != null;
98 }
99 catch (MalformedURLException e)
100 {
101 Logger log = Logger.getLogger(ViewDeclarationLanguage.class.getName());
102 if (log.isLoggable(Level.SEVERE))
103 {
104 log.log(Level.SEVERE, "Malformed URL viewId: "+viewId, e);
105 }
106 }
107 return false;
108 }
109
110
111
112
113
114
115
116
117
118 public UIComponent createComponent(FacesContext context,
119 String taglibURI,
120 String tagName,
121 Map<String,Object> attributes)
122 {
123 return null;
124 }
125
126
127
128
129
130
131
132 public List<String> calculateResourceLibraryContracts(FacesContext context,
133 String viewId)
134 {
135 return null;
136 }
137 }