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.util;
29:
30: import net.sf.jasperreports.engine.JRException;
31: import net.sf.jasperreports.engine.query.JRQueryExecuterFactory;
32:
33: /**
34: * Query executer utility class.
35: *
36: * @author Lucian Chirita (lucianc@users.sourceforge.net)
37: * @version $Id: JRQueryExecuterUtils.java 1828 2007-08-24 13:58:43Z teodord $
38: */
39: public class JRQueryExecuterUtils {
40: private static final JRSingletonCache cache = new JRSingletonCache(
41: JRQueryExecuterFactory.class);
42:
43: /**
44: * Returns a query executer factory for a query language.
45: *
46: * @param language the query language
47: * @return a query executer factory
48: * @throws JRException
49: * @see JRProperties#QUERY_EXECUTER_FACTORY_PREFIX
50: */
51: public static JRQueryExecuterFactory getQueryExecuterFactory(
52: String language) throws JRException {
53: String factoryClassName = JRProperties
54: .getProperty(JRQueryExecuterFactory.QUERY_EXECUTER_FACTORY_PREFIX
55: + language);
56: if (factoryClassName == null) {
57: throw new JRException(
58: "No query executer factory class registered for "
59: + language
60: + " queries. "
61: + "Create a propery named "
62: + JRQueryExecuterFactory.QUERY_EXECUTER_FACTORY_PREFIX
63: + language + ".");
64: }
65:
66: return (JRQueryExecuterFactory) cache
67: .getCachedInstance(factoryClassName);
68: }
69: }
|