You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
final BooleanExpressionEvaluator booleanExpressionEvaluator = new BooleanExpressionEvaluator();
150
+
final BooleanExpressionEvaluator booleanExpressionEvaluator = new BooleanExpressionEvaluator(new Boolparser());
150
151
final Map<String, Object> data = new HashMap<>();
151
152
data.put("age", 26);
152
-
final Try<Boolean> result = booleanExpressionEvaluator.evaluate("age >= 27", data);
153
-
assertTrue(booleanOptional.isPresent());
154
-
assertFalse(booleanOptional.get());
153
+
final Try<Boolean> resultOptional = booleanExpressionEvaluator.evaluate("age >= 27", data);
154
+
assertTrue(resultOptional.isPresent());
155
+
assertFalse(resultOptional.get());
155
156
```
156
157
Boolean Comparison
157
158
```
158
-
final BooleanExpressionEvaluator booleanExpressionEvaluator = new BooleanExpressionEvaluator();
159
+
final BooleanExpressionEvaluator booleanExpressionEvaluator = new BooleanExpressionEvaluator(new Boolparser());
159
160
final Map<String, Object> data = new HashMap<>();
160
161
data.put("age", 25);
161
162
data.put("name", "sid");
162
-
final Try<Boolean> result = booleanExpressionEvaluator.evaluate("name = sid AND age = 25", data);
163
-
assertTrue(booleanOptional.isPresent());
164
-
assertTrue(booleanOptional.get());
163
+
final Try<Boolean> resultOptional = booleanExpressionEvaluator.evaluate("name = sid AND age = 25", data);
164
+
assertTrue(resultOptional.isPresent());
165
+
assertTrue(resultOptional.get());
165
166
```
166
167
Nested Boolean Comparison
167
168
```
168
-
final BooleanExpressionEvaluator booleanExpressionEvaluator = new BooleanExpressionEvaluator();
169
+
final BooleanExpressionEvaluator booleanExpressionEvaluator = new BooleanExpressionEvaluator(new Boolparser());
169
170
final Map<String, Object> data = new HashMap<>();
170
171
data.put("age", 25);
171
172
data.put("name", "sid");
172
173
data.put("num", 45);
173
-
final Try<Boolean> result = booleanExpressionEvaluator.evaluate("name:sid AND (age = 25 OR num = 44)", data);
174
-
assertTrue(booleanOptional.isPresent());
175
-
assertTrue(booleanOptional.get());
174
+
final Try<Boolean> resultOptional = booleanExpressionEvaluator.evaluate("name:sid AND (age = 25 OR num = 44)", data);
175
+
assertTrue(resultOptional.isPresent());
176
+
assertTrue(resultOptional.get());
176
177
```
177
178
App Version Comparison
178
179
```
179
-
final BooleanExpressionEvaluator booleanExpressionEvaluator = new BooleanExpressionEvaluator();
180
+
final BooleanExpressionEvaluator booleanExpressionEvaluator = new BooleanExpressionEvaluator(new Boolparser());
180
181
final Map<String, Object> data = new HashMap<>();
181
182
data.put("app_version", "1.5.9");
182
-
final Try<Boolean> result = booleanExpressionEvaluator.evaluate("app_version < 1.5.10", data);
183
-
assertTrue(booleanOptional.isPresent());
184
-
assertTrue(booleanOptional.get());
183
+
final Try<Boolean> resultOptional = booleanExpressionEvaluator.evaluate("app_version < 1.5.10", data);
184
+
assertTrue(resultOptional.isPresent());
185
+
assertTrue(resultOptional.get());
185
186
```
186
187
187
188
The return type is `Try<Boolean>`. Failure means that parsing has failed and any fallback can be used.
188
189
189
190
190
-
[For a complete list of examples please check out the test file](src/test/java/com/github/sidhant92/boolparser/application/BooleanExpressionEvaluatorTest.java)
191
+
[For a complete list of examples please check out the test file](src/test/java/com/github/sidhant92/boolparser/application/BooleanExpressionEvaluatorTest.java)
192
+
193
+
194
+
### Arithmetic Expression Evaluator
195
+
196
+
The library can be used to evaluate a arithmetic expression.
197
+
It supports both numbers and variables which will be substituted from the passed data.
198
+
The passed variables can also be passed using the dot notation to access nested fields from the input data.
199
+
200
+
The following Data Types are supported:
201
+
1. String
202
+
2. Integer
203
+
3. Long
204
+
4. Decimal
205
+
206
+
The following Operators are supported:
207
+
1. Addition (+)
208
+
2. Subtraction (-)
209
+
3. Multiplication (*)
210
+
4. Division (/)
211
+
5. Modulus (%)
212
+
6. Exponent (^)
213
+
214
+
Usage examples:
215
+
216
+
Simple Addition Operation
217
+
```
218
+
final ArithmeticExpressionEvaluator evaluator = new ArithmeticExpressionEvaluator(new Boolparser());
219
+
final Map<String, Object> data = new HashMap<>();
220
+
data.put("a", 10);
221
+
final Try<Object> resultOptional = evaluator.evaluate("a + 5", data);
222
+
assertTrue(resultOptional.isPresent());
223
+
assertTrue(resultOptional.get(), 15);
224
+
```
225
+
226
+
Complex Arithmetic Operation
227
+
```
228
+
final ArithmeticExpressionEvaluator evaluator = new ArithmeticExpressionEvaluator(new Boolparser());
229
+
final Map<String, Object> data = new HashMap<>();
230
+
data.put("a", 10);
231
+
final Try<Object> resultOptional = evaluator.evaluate("((5 * 2) + a) * 2 + (1 + 3 * (a / 2))", data);
232
+
assertTrue(resultOptional.isPresent());
233
+
assertTrue(resultOptional.get(), 56);
234
+
```
235
+
236
+
[For a complete list of examples please check out the test file](src/test/java/com/github/sidhant92/boolparser/application/ArithmeticExpressionEvaluatorTest.java)
0 commit comments