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