use of org.kie.dmn.api.core.DMNUnaryTest in project drools by kiegroup.
the class FEELSchemaEnum method parseNumberAllowedValuesIntoSchema.
public static void parseNumberAllowedValuesIntoSchema(Schema schema, List<DMNUnaryTest> list) {
// we leverage the property of the *base* FEEL grammar(non visited by ASTVisitor, only the ParseTree->AST Visitor) that `>x` is a Range
List<Object> uts = evaluateUnaryTests(list);
if (uts.size() <= 2 && uts.stream().allMatch(o -> o instanceof Range)) {
// cast intentional.
Range range = consolidateRanges((List) uts);
if (range != null) {
if (range.getLowEndPoint() != null) {
schema.minimum((BigDecimal) range.getLowEndPoint());
schema.exclusiveMinimum(range.getLowBoundary() == RangeBoundary.OPEN);
}
if (range.getHighEndPoint() != null) {
schema.maximum((BigDecimal) range.getHighEndPoint());
schema.exclusiveMaximum(range.getHighBoundary() == RangeBoundary.OPEN);
}
}
} else if (uts.stream().allMatch(o -> o instanceof Number)) {
schema.enumeration(uts);
} else {
LOG.warn("Unable to parse generic allowed value into the JSON Schema for enumeration");
}
}
Aggregations