1 /*
2 * JasperReports - Free Java Reporting Library.
3 * Copyright (C) 2001 - 2019 TIBCO Software Inc. All rights reserved.
4 * http://www.jaspersoft.com
5 *
6 * Unless you have purchased a commercial license agreement from Jaspersoft,
7 * the following license terms apply:
8 *
9 * This program is part of JasperReports.
10 *
11 * JasperReports is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License as published by
13 * the Free Software Foundation, either version 3 of the License, or
14 * (at your option) any later version.
15 *
16 * JasperReports is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Lesser General Public License for more details.
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * along with JasperReports. If not, see <http://www.gnu.org/licenses/>.
23 */
24 package net.sf.jasperreports.engine.query;
25
26 import java.util.HashMap;
27 import java.util.Map;
28
29 /**
30 * Query clause function bundle for a single query language.
31 *
32 * @author Lucian Chirita (lucianc@users.sourceforge.net)
33 */
34 public class StandardSingleQueryClauseFunctionBundle
35 implements QueryClauseFunctionBundle
36 {
37
38 // this bundle only knows of one language
39 private final String queryLanguage;
40 private Map<String, JRClauseFunction> functions;
41
42 /**
43 * Creates a bundle for a query language
44 *
45 * @param queryLanguage the query language
46 */
47 public StandardSingleQueryClauseFunctionBundle(String queryLanguage)
48 {
49 this.queryLanguage = queryLanguage;
50 this.functions = new HashMap<String, JRClauseFunction>();
51 }
52
53 /**
54 * Registers a query clause function.
55 *
56 * @param clauseId the clause Id
57 * @param function the function implementation
58 */
59 public void addFunction(String clauseId, JRClauseFunction function)
60 {
61 functions.put(clauseId, function);
62 }
63
64 @Override
65 public JRClauseFunction getFunction(String queryLanguage, String clauseId)
66 {
67 if (!this.queryLanguage.equals(queryLanguage))
68 {
69 // not the language of this bundle
70 return null;
71 }
72
73 return functions.get(clauseId);
74 }
75
76 }
77