01: /*
02: * ============================================================================
03: * GNU Lesser General Public License
04: * ============================================================================
05: *
06: * JasperReports - Free Java report-generating library.
07: * Copyright (C) 2001-2006 JasperSoft Corporation http://www.jaspersoft.com
08: *
09: * This library is free software; you can redistribute it and/or
10: * modify it under the terms of the GNU Lesser General Public
11: * License as published by the Free Software Foundation; either
12: * version 2.1 of the License, or (at your option) any later version.
13: *
14: * This library is distributed in the hope that it will be useful,
15: * but WITHOUT ANY WARRANTY; without even the implied warranty of
16: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17: * Lesser General Public License for more details.
18: *
19: * You should have received a copy of the GNU Lesser General Public
20: * License along with this library; if not, write to the Free Software
21: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
22: *
23: * JasperSoft Corporation
24: * 303 Second Street, Suite 450 North
25: * San Francisco, CA 94107
26: * http://www.jaspersoft.com
27: */
28: package net.sf.jasperreports.engine.query;
29:
30: import java.util.Arrays;
31: import java.util.Map;
32:
33: import net.sf.jasperreports.engine.JRDataset;
34: import net.sf.jasperreports.engine.JRException;
35: import net.sf.jasperreports.engine.util.JRProperties;
36:
37: /**
38: * Query executer factory for SQL queries.
39: * <p/>
40: * This factory creates JDBC query executers for SQL queries.
41: *
42: * @author Lucian Chirita (lucianc@users.sourceforge.net)
43: * @version $Id: JRJdbcQueryExecuterFactory.java 1344 2006-07-12 09:27:58Z teodord $
44: * @see net.sf.jasperreports.engine.query.JRJdbcQueryExecuter
45: */
46: public class JRJdbcQueryExecuterFactory implements
47: JRQueryExecuterFactory {
48: /**
49: * Property specifying the ResultSet fetch size.
50: */
51: public static final String PROPERTY_JDBC_FETCH_SIZE = JRProperties.PROPERTY_PREFIX
52: + "jdbc.fetch.size";
53:
54: /**
55: * SQL query language.
56: */
57: public static final String QUERY_LANGUAGE_SQL = "sql";
58:
59: private static final String[] queryParameterClassNames;
60:
61: static {
62: queryParameterClassNames = new String[] {
63: java.lang.Object.class.getName(),
64: java.lang.Boolean.class.getName(),
65: java.lang.Byte.class.getName(),
66: java.lang.Double.class.getName(),
67: java.lang.Float.class.getName(),
68: java.lang.Integer.class.getName(),
69: java.lang.Long.class.getName(),
70: java.lang.Short.class.getName(),
71: java.math.BigDecimal.class.getName(),
72: java.lang.String.class.getName(),
73: java.util.Date.class.getName(),
74: java.sql.Timestamp.class.getName(),
75: java.sql.Time.class.getName() };
76:
77: Arrays.sort(queryParameterClassNames);
78: }
79:
80: public JRQueryExecuter createQueryExecuter(JRDataset dataset,
81: Map parameters) throws JRException {
82: return new JRJdbcQueryExecuter(dataset, parameters);
83: }
84:
85: public Object[] getBuiltinParameters() {
86: return null;
87: }
88:
89: public boolean supportsQueryParameterType(String className) {
90: return Arrays.binarySearch(queryParameterClassNames, className) >= 0;
91: }
92: }
|