private static String createRangeString(final RangeConstraint<?> constraints) { return constraints.getAllowedRanges().toString(); }
private void emitRangeNode(final RangeConstraint<?> constraint) { super.writer.startRangeNode(toRangeString(constraint.getAllowedRanges())); constraint.getErrorMessage().ifPresent(this::emitErrorMessageNode); constraint.getErrorAppTag().ifPresent(this::emitErrorAppTagNode); emitDocumentedNode(constraint); super.writer.endNode(); }
private String createRangeString(final RangeConstraint<?> constraint) { final Set<? extends Range<? extends Number>> constraints = constraint.getAllowedRanges().asRanges(); final List<Range<T>> ranges = new ArrayList<>(constraints.size()); for (Range<? extends Number> c : constraints) { ranges.add(Range.closed(getValue(c.lowerEndpoint()), getValue(c.upperEndpoint()))); } return ranges.toString(); }
@Override protected final String generateRangeCheckerImplementation(final String checkerName, @Nonnull final RangeConstraint<?> constraint) { final Set<? extends Range<? extends Number>> constraints = constraint.getAllowedRanges().asRanges(); final String fieldName = checkerName.toUpperCase() + "_RANGES"; final StringBuilder sb = new StringBuilder();
private final Collection<String> createExpressions(final Collection<RangeConstraint> constraints) { final Collection<String> ret = new ArrayList<>(constraints.size()); for (RangeConstraint r : constraints) { final T min = getValue(r.getMin()); final boolean needMin = needsMinimumEnforcement(min); final T max = getValue(r.getMax()); final boolean needMax = needsMaximumEnforcement(max); if (!needMin && !needMax) { LOG.debug("Type {} indicates [{}, {}] does not require enforcement", getTypeName(), min, max); continue; } final StringBuilder sb = new StringBuilder(); if (needMin) { sb.append("value >= ").append(format(min)); } if (needMax) { if (needMin) { sb.append(" && "); } sb.append("value <= ").append(format(max)); } ret.add(sb.toString()); } return ret; }
@Override protected final String generateRangeCheckerImplementation(final String checkerName, final RangeConstraint<?> constraint, final Function<Class<?>, String> classImporter) { final Set<? extends Range<? extends Number>> constraints = constraint.getAllowedRanges().asRanges(); final String fieldName = checkerName.toUpperCase() + "_RANGES"; final StringBuilder sb = new StringBuilder();
_builder.append(_importedName_3, ""); _builder.append(".closed("); Number _min = r.getMin(); String _numericValue = this.numericValue(numberClass, _min); _builder.append(_numericValue, ""); _builder.append(", "); Number _max = r.getMax(); String _numericValue_1 = this.numericValue(numberClass, _max); _builder.append(_numericValue_1, "");
private Collection<String> createExpressions(final RangeConstraint<?> constraint) { final Set<? extends Range<? extends Number>> constraints = constraint.getAllowedRanges().asRanges(); final Collection<String> ret = new ArrayList<>(constraints.size()); for (Range<? extends Number> r : constraints) { final T min = getValue(r.lowerEndpoint()); final boolean needMin = needsMinimumEnforcement(min); final T max = getValue(r.upperEndpoint()); final boolean needMax = needsMaximumEnforcement(max); if (!needMin && !needMax) { LOG.debug("Type {} indicates [{}, {}] does not require enforcement", getTypeName(), min, max); continue; } final StringBuilder sb = new StringBuilder(); if (needMin) { sb.append("value >= ").append(format(min)); } if (needMax) { if (needMin) { sb.append(" && "); } sb.append("value <= ").append(format(max)); } ret.add(sb.toString()); } return ret; }
_builder.append(_importedName_3, ""); _builder.append(".closed("); Number _min = r.getMin(); String _numericValue = this.numericValue(numberClass, _min); _builder.append(_numericValue, ""); _builder.append(", "); Number _max = r.getMax(); String _numericValue_1 = this.numericValue(numberClass, _max); _builder.append(_numericValue_1, "");
private Collection<String> createExpressions(final RangeConstraint<?> constraint) { final Set<? extends Range<? extends Number>> constraints = constraint.getAllowedRanges().asRanges(); final Collection<String> ret = new ArrayList<>(constraints.size()); for (Range<? extends Number> r : constraints) { final T min = getValue(r.lowerEndpoint()); final boolean needMin = needsMinimumEnforcement(min); final T max = getValue(r.upperEndpoint()); final boolean needMax = needsMaximumEnforcement(max); if (!needMin && !needMax) { LOG.debug("Type {} indicates [{}, {}] does not require enforcement", getTypeName(), min, max); continue; } final StringBuilder sb = new StringBuilder(); if (needMin) { sb.append(gtExpression(min)); } if (needMax) { if (needMin) { sb.append(" && "); } sb.append(ltExpression(max)); } ret.add(sb.toString()); } return ret; }
final RangeConstraint<N> calculateRangeConstraint(final RangeConstraint<N> baseRangeConstraint) { if (ranges == null) { return baseRangeConstraint; } // Run through alternatives and resolve them against the base type final RangeSet<N> baseRangeSet = baseRangeConstraint.getAllowedRanges(); Verify.verify(!baseRangeSet.isEmpty(), "Base type %s does not define constraints", getBaseType()); final Range<N> baseRange = baseRangeSet.span(); final List<ValueRange> resolvedRanges = ensureResolvedRanges(ranges, baseRange); // Next up, ensure the of boundaries match base constraints final RangeSet<N> typedRanges = ensureTypedRanges(resolvedRanges, baseRange.lowerEndpoint().getClass()); // Now verify if new ranges are strict subset of base ranges if (!baseRangeSet.enclosesAll(typedRanges)) { throw new InvalidRangeConstraintException(typedRanges, "Range constraint %s is not a subset of parent constraint %s", typedRanges, baseRangeSet); } return new ResolvedRangeConstraint<>(constraint, typedRanges); }
final RangeConstraint<N> calculateRangeConstraint(final RangeConstraint<N> baseRangeConstraint) { if (ranges == null) { return baseRangeConstraint; } // Run through alternatives and resolve them against the base type final RangeSet<N> baseRangeSet = baseRangeConstraint.getAllowedRanges(); Verify.verify(!baseRangeSet.isEmpty(), "Base type %s does not define constraints", getBaseType()); final Range<N> baseRange = baseRangeSet.span(); final List<ValueRange> resolvedRanges = ensureResolvedRanges(ranges, baseRange); // Next up, ensure the of boundaries match base constraints final RangeSet<N> typedRanges = ensureTypedRanges(resolvedRanges, baseRange.lowerEndpoint().getClass()); // Now verify if new ranges are strict subset of base ranges if (!baseRangeSet.enclosesAll(typedRanges)) { throw new InvalidRangeConstraintException(typedRanges, "Range constraint %s is not a subset of parent constraint %s", typedRanges, baseRangeSet); } return new ResolvedRangeConstraint<>(constraint, typedRanges); }