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.Arrays;
27 import java.util.Collection;
28 import java.util.Collections;
29 import java.util.HashMap;
30 import java.util.Map;
31
32 /**
33 * @author Lucian Chirita (lucianc@users.sourceforge.net)
34 */
35 public class StandardSingleQueryParameterTypesClauseFunctionBundle implements
36 ParameterTypesClauseFunctionBundle
37 {
38
39 private final String queryLanguage;
40 private Map<String, Collection<? extends ParameterTypesClauseFunction>> clauseFunctions;
41
42 public StandardSingleQueryParameterTypesClauseFunctionBundle(
43 String queryLanguage)
44 {
45 this.queryLanguage = queryLanguage;
46 this.clauseFunctions = new HashMap<String, Collection<? extends ParameterTypesClauseFunction>>();
47 }
48
49 public void setFunctions(String clauseId, ParameterTypesClauseFunction ...functions)
50 {
51 clauseFunctions.put(clauseId, Arrays.asList(functions));
52 }
53
54 public void setFunctions(String clauseId, ParameterTypesClauseFunction function)
55 {
56 clauseFunctions.put(clauseId, Collections.singleton(function));
57 }
58
59 @Override
60 public Collection<? extends ParameterTypesClauseFunction> getTypeFunctions(
61 String queryLanguage, String clauseId)
62 {
63 if (!this.queryLanguage.equals(queryLanguage))
64 {
65 // not the language of this bundle
66 return null;
67 }
68
69 return clauseFunctions.get(clauseId);
70 }
71
72 }
73