1
24 package net.sf.jasperreports.data;
25
26 import java.util.Iterator;
27 import java.util.List;
28
29 import net.sf.jasperreports.data.bean.BeanDataAdapter;
30 import net.sf.jasperreports.data.bean.BeanDataAdapterService;
31 import net.sf.jasperreports.data.csv.CsvDataAdapter;
32 import net.sf.jasperreports.data.csv.CsvDataAdapterService;
33 import net.sf.jasperreports.data.ds.DataSourceDataAdapter;
34 import net.sf.jasperreports.data.ds.DataSourceDataAdapterService;
35 import net.sf.jasperreports.data.ejbql.EjbqlDataAdapter;
36 import net.sf.jasperreports.data.ejbql.EjbqlDataAdapterService;
37 import net.sf.jasperreports.data.empty.EmptyDataAdapter;
38 import net.sf.jasperreports.data.empty.EmptyDataAdapterService;
39 import net.sf.jasperreports.data.excel.ExcelDataAdapter;
40 import net.sf.jasperreports.data.excel.ExcelDataAdapterService;
41 import net.sf.jasperreports.data.hibernate.HibernateDataAdapter;
42 import net.sf.jasperreports.data.hibernate.HibernateDataAdapterService;
43 import net.sf.jasperreports.data.hibernate.spring.SpringHibernateDataAdapter;
44 import net.sf.jasperreports.data.hibernate.spring.SpringHibernateDataAdapterService;
45 import net.sf.jasperreports.data.jdbc.JdbcDataAdapter;
46 import net.sf.jasperreports.data.jdbc.JdbcDataAdapterContributorFactory;
47 import net.sf.jasperreports.data.jdbc.JdbcDataAdapterService;
48 import net.sf.jasperreports.data.jndi.JndiDataAdapter;
49 import net.sf.jasperreports.data.jndi.JndiDataAdapterService;
50 import net.sf.jasperreports.data.json.JsonDataAdapter;
51 import net.sf.jasperreports.data.json.JsonDataAdapterService;
52 import net.sf.jasperreports.data.mondrian.MondrianDataAdapter;
53 import net.sf.jasperreports.data.mondrian.MondrianDataAdapterService;
54 import net.sf.jasperreports.data.provider.DataSourceProviderDataAdapter;
55 import net.sf.jasperreports.data.provider.DataSourceProviderDataAdapterService;
56 import net.sf.jasperreports.data.qe.QueryExecuterDataAdapter;
57 import net.sf.jasperreports.data.qe.QueryExecuterDataAdapterService;
58 import net.sf.jasperreports.data.random.RandomDataAdapter;
59 import net.sf.jasperreports.data.random.RandomDataAdapterService;
60 import net.sf.jasperreports.data.xls.XlsDataAdapter;
61 import net.sf.jasperreports.data.xls.XlsDataAdapterService;
62 import net.sf.jasperreports.data.xlsx.XlsxDataAdapter;
63 import net.sf.jasperreports.data.xlsx.XlsxDataAdapterService;
64 import net.sf.jasperreports.data.xml.XmlDataAdapter;
65 import net.sf.jasperreports.data.xml.XmlDataAdapterService;
66 import net.sf.jasperreports.data.xmla.XmlaDataAdapter;
67 import net.sf.jasperreports.data.xmla.XmlaDataAdapterService;
68 import net.sf.jasperreports.engine.JasperReportsContext;
69 import net.sf.jasperreports.engine.ParameterContributorContext;
70
71
72
75 public class DefaultDataAdapterServiceFactory implements DataAdapterContributorFactory, DataAdapterServiceFactory
76 {
77
78
81 private static final DefaultDataAdapterServiceFactory INSTANCE = new DefaultDataAdapterServiceFactory();
82
83
86 private DefaultDataAdapterServiceFactory()
87 {
88 }
89
90
93 public static DefaultDataAdapterServiceFactory getInstance()
94 {
95 return INSTANCE;
96 }
97
98 @Override
99 public DataAdapterService getDataAdapterService(ParameterContributorContext context, DataAdapter dataAdapter)
100 {
101
102 DataAdapterService dataAdapterService = null;
103
104 if (dataAdapter instanceof BeanDataAdapter)
105 {
106 dataAdapterService = new BeanDataAdapterService(context, (BeanDataAdapter)dataAdapter);
107 }
108 else if (dataAdapter instanceof CsvDataAdapter)
109 {
110 dataAdapterService = new CsvDataAdapterService(context, (CsvDataAdapter)dataAdapter);
111 }
112 else if (dataAdapter instanceof DataSourceDataAdapter)
113 {
114 dataAdapterService = new DataSourceDataAdapterService(context, (DataSourceDataAdapter)dataAdapter);
115 }
116 else if (dataAdapter instanceof EmptyDataAdapter)
117 {
118 dataAdapterService = new EmptyDataAdapterService(context, (EmptyDataAdapter)dataAdapter);
119 }
120 else if (dataAdapter instanceof RandomDataAdapter)
121 {
122 dataAdapterService = new RandomDataAdapterService(context, (RandomDataAdapter)dataAdapter);
123 }
124 else if (dataAdapter instanceof JndiDataAdapter)
125 {
126 dataAdapterService = new JndiDataAdapterService(context, (JndiDataAdapter)dataAdapter);
127 }
128 else if (dataAdapter instanceof DataSourceProviderDataAdapter)
129 {
130 dataAdapterService = new DataSourceProviderDataAdapterService(context, (DataSourceProviderDataAdapter)dataAdapter);
131 }
132 else if (dataAdapter instanceof QueryExecuterDataAdapter)
133 {
134 dataAdapterService = new QueryExecuterDataAdapterService(context, (QueryExecuterDataAdapter)dataAdapter);
135 }
136
137
138 else if (dataAdapter instanceof ExcelDataAdapter)
139 {
140 dataAdapterService = new ExcelDataAdapterService(context, (ExcelDataAdapter)dataAdapter);
141 }
142 else if (dataAdapter instanceof XlsxDataAdapter)
143 {
144 dataAdapterService = new XlsxDataAdapterService(context, (XlsxDataAdapter)dataAdapter);
145 }
146 else if (dataAdapter instanceof XlsDataAdapter)
147 {
148 dataAdapterService = new XlsDataAdapterService(context, (XlsDataAdapter)dataAdapter);
149 }
150
151
152 else if (dataAdapter instanceof XmlDataAdapter)
153 {
154 dataAdapterService = new XmlDataAdapterService(context, (XmlDataAdapter)dataAdapter);
155 }
156 else if (dataAdapter instanceof JsonDataAdapter)
157 {
158 dataAdapterService = new JsonDataAdapterService(context, (JsonDataAdapter)dataAdapter);
159 }
160 else if (dataAdapter instanceof HibernateDataAdapter)
161 {
162 dataAdapterService = new HibernateDataAdapterService(context, (HibernateDataAdapter)dataAdapter);
163 }
164 else if (dataAdapter instanceof SpringHibernateDataAdapter)
165 {
166 dataAdapterService = new SpringHibernateDataAdapterService(context, (SpringHibernateDataAdapter)dataAdapter);
167 }
168 else if (dataAdapter instanceof EjbqlDataAdapter)
169 {
170 dataAdapterService = new EjbqlDataAdapterService(context, (EjbqlDataAdapter)dataAdapter);
171 }
172 else if (dataAdapter instanceof MondrianDataAdapter)
173 {
174 dataAdapterService = new MondrianDataAdapterService(context, (MondrianDataAdapter)dataAdapter);
175 }
176 else if (dataAdapter instanceof XmlaDataAdapter)
177 {
178 dataAdapterService = new XmlaDataAdapterService(context, (XmlaDataAdapter)dataAdapter);
179 }
180 else if (dataAdapter instanceof JdbcDataAdapter)
181 {
182 JasperReportsContext jasperReportsContext = context.getJasperReportsContext();
183
184 List<JdbcDataAdapterContributorFactory> bundles = jasperReportsContext.getExtensions(
185 JdbcDataAdapterContributorFactory.class);
186 for (Iterator<JdbcDataAdapterContributorFactory> it = bundles.iterator(); it.hasNext();)
187 {
188 JdbcDataAdapterContributorFactory factory = it.next();
189 DataAdapterService service = factory.getDataAdapterService(context, (JdbcDataAdapter)dataAdapter);
190 if (service != null)
191 {
192 dataAdapterService = service;
193 break;
194 }
195 }
196
197 if (dataAdapterService == null)
198 {
199 dataAdapterService = new JdbcDataAdapterService(context, (JdbcDataAdapter)dataAdapter);
200 }
201 }
202
203 return dataAdapterService;
204 }
205
206
209 @Override
210 public DataAdapterService getDataAdapterService(JasperReportsContext jasperReportsContext, DataAdapter dataAdapter)
211 {
212 return getDataAdapterService(new ParameterContributorContext(jasperReportsContext, null, null), dataAdapter);
213 }
214
215 }
216