1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package net.sf.jasperreports.jsf.context;
20
21 import java.util.Collection;
22 import javax.faces.component.UIComponent;
23 import javax.faces.context.FacesContext;
24
25 import net.sf.jasperreports.jsf.component.UIReport;
26 import net.sf.jasperreports.jsf.convert.ReportConverter;
27 import net.sf.jasperreports.jsf.convert.SourceConverter;
28 import net.sf.jasperreports.jsf.engine.Exporter;
29 import net.sf.jasperreports.jsf.engine.Filler;
30 import net.sf.jasperreports.jsf.resource.Resource;
31 import net.sf.jasperreports.jsf.util.Services;
32
33
34
35
36
37
38 public abstract class JRFacesContext {
39
40
41 protected static final String INSTANCE_KEY =
42 JRFacesContext.class.getName();
43
44
45 private static final JRFacesContext DEFAULT_JRFACES_CONTEXT =
46 new DefaultJRFacesContext();
47
48
49
50
51
52
53
54 public static JRFacesContext getInstance(final FacesContext context) {
55 if (context == null) {
56 throw new NullPointerException();
57 }
58
59 JRFacesContext instance = (JRFacesContext) context.getExternalContext()
60 .getApplicationMap().get(INSTANCE_KEY);
61 if (instance == null) {
62 instance = Services.chain(JRFacesContext.class,
63 DEFAULT_JRFACES_CONTEXT);
64 context.getExternalContext().getApplicationMap()
65 .put(INSTANCE_KEY, instance);
66 }
67 return instance;
68 }
69
70
71
72
73
74
75 public abstract Collection<String> getAvailableSourceTypes();
76
77
78
79
80
81
82 public abstract Collection<String> getAvailableExportFormats();
83
84 public abstract Collection<ContentType> getSupportedContentTypes();
85
86
87
88
89
90
91
92 public abstract ExternalContextHelper getExternalContextHelper(
93 FacesContext context);
94
95
96
97
98
99
100
101
102 public abstract SourceConverter createSourceConverter(
103 FacesContext context, UIComponent component);
104
105 public abstract ReportConverter createReportConverter(
106 FacesContext context, UIReport component);
107
108
109
110
111
112
113
114
115
116 public abstract Resource createResource(FacesContext context,
117 UIComponent component, String name);
118
119
120
121
122
123
124
125
126 public abstract Filler getFiller(
127 FacesContext context, UIReport component);
128
129
130
131
132
133
134
135
136 public abstract Exporter getExporter(
137 FacesContext context, UIReport component);
138
139 }