diff --git a/src/main/java/com/github/sidhant92/boolparser/application/ArithmeticExpressionEvaluator.java b/src/main/java/com/github/sidhant92/boolparser/application/ArithmeticExpressionEvaluator.java index 5da6ef0..56f4e71 100644 --- a/src/main/java/com/github/sidhant92/boolparser/application/ArithmeticExpressionEvaluator.java +++ b/src/main/java/com/github/sidhant92/boolparser/application/ArithmeticExpressionEvaluator.java @@ -2,6 +2,7 @@ import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.stream.Collectors; import com.github.sidhant92.boolparser.constant.ContainerDataType; import com.github.sidhant92.boolparser.constant.DataType; @@ -62,10 +63,11 @@ private Object evaluateToken(final Node node, final Map data) { } private Object evaluateFieldToken(final FieldNode fieldNode, final Map data) { - if (!data.containsKey(fieldNode.getField())) { + final Optional value = ValueUtils.getValueFromMap(fieldNode.getField(), data); + if (!value.isPresent()) { throw new DataNotFoundException(fieldNode.getField()); } - return data.get(fieldNode.getField()); + return value.get(); } private Object evaluateUnaryToken(final UnaryNode unaryNode, final Map data) {