private void validateRange(JsonNode node, List<ErrorMessage> results) {
        if (this.minimum != null) {
            String nodeValueAsString = type.getValue(node).toString();
            BigDecimal value = new BigDecimal(nodeValueAsString);
            BigDecimal minimum = new BigDecimal(this.minimum.toString());
            if (exclusiveMinimum && (value.compareTo(minimum) < 1)) {
                results.add(new ErrorMessage("", "Value '" + nodeValueAsString + "' must be greater than " + minimum + " when exclusiveMinimum is true"));
            } else if (value.compareTo(minimum) < 0) {
                results.add(new ErrorMessage("", "Value '" + nodeValueAsString + "' must be greater or equal to " + minimum));
            }
        }

        if (this.maximum != null) {
            String nodeValueAsString = type.getValue(node).toString();
            BigDecimal value = new BigDecimal(nodeValueAsString);
            BigDecimal maximum = new BigDecimal(this.maximum.toString());
            if (exclusiveMaximum && value.compareTo(maximum) >= 0) {
                results.add(new ErrorMessage("", "Value '" + nodeValueAsString + "' must be less than " + maximum + " when exclusiveMaximum is true"));
            } else if (value.compareTo(maximum) > 0) {
                results.add(new ErrorMessage("", "Value '" + nodeValueAsString + "' must be less than or equal to " + maximum));
            }
        }
    }