]> git.mxchange.org Git - jcore.git/blob - src/org/mxchange/jcore/criteria/BaseCriteria.java
Added support for Long and currently null is not supported
[jcore.git] / src / org / mxchange / jcore / criteria / BaseCriteria.java
1 /*
2  * Copyright (C) 2015 Roland Haeder
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
16  */
17 package org.mxchange.jcore.criteria;
18
19 import java.util.HashMap;
20 import java.util.Map;
21 import java.util.Set;
22 import org.mxchange.jcore.BaseFrameworkSystem;
23 import org.mxchange.jcore.criteria.logical.Logical;
24
25 /**
26  * A general criteria class
27  *
28  * @author Roland Haeder
29  */
30 public class BaseCriteria extends BaseFrameworkSystem implements Criteria {
31         /**
32          * Criteria map
33          */
34         private final Map<String, Object> criteria;
35
36         /**
37          * Logical matcher instance
38          */
39         private Logical logcial;
40
41         /**
42          * Protected default construtctor
43          */
44         protected BaseCriteria () {
45                 // Init criteria instance
46                 this.criteria = new HashMap<>();
47         }
48
49         @Override
50         public void addCriteria (final String key, final Boolean value) {
51                 // Add to map
52                 this.criteria.put(key, value);
53         }
54
55         @Override
56         public void addCriteria (final String key, final String value) {
57                 // Add to map
58                 this.criteria.put(key, value);
59         }
60
61         @Override
62         public Set<Map.Entry<String, Object>> entrySet () {
63                 return this.criteria.entrySet();
64         }
65
66         @Override
67         public Iterable<Object> values () {
68                 // Call map's method
69                 return this.criteria.values();
70                 
71         }
72
73         /**
74          * Getter for Logical matcher instance
75          * 
76          * @return Logical matcher instance
77          */
78         protected final Logical getLogical () {
79                 return this.logcial;
80         }
81
82         /**
83          * Setter for Logical instance
84          * 
85          * @param logcial the Logical instance to set
86          */
87         public final void setLogcial (final Logical logcial) {
88                 this.logcial = logcial;
89         }
90
91         @Override
92         public void addCriteria (final String key, final Number value) {
93                 this.criteria.put(key, value);
94         }
95 }