@Override void validate(final byte[] value) { // FIXME: throw an exception capturing the constraint violation checkArgument(lengthConstraint.getAllowedRanges().contains(value.length), "Value length %s does not match constraint %s", value.length, lengthConstraint); } }
private static String createLengthString(final Collection<LengthConstraint> constraints) { final List<Range<BigInteger>> ranges = new ArrayList<>(constraints.size()); for (LengthConstraint c : constraints) { ranges.add(Range.closed(new BigInteger(c.getMin().toString()), new BigInteger(c.getMax().toString()))); } return ranges.toString(); }
private void emitLength(final LengthConstraint constraint) { super.writer.startLengthNode(toLengthString(constraint.getAllowedRanges())); constraint.getErrorMessage().ifPresent(this::emitErrorMessageNode); constraint.getErrorAppTag().ifPresent(this::emitErrorAppTagNode); emitDocumentedNode(constraint); super.writer.endNode(); }
Iterator<LengthConstraint> _iterator = _lengthConstraints_1.iterator(); LengthConstraint _next = _iterator.next(); Number _min = _next.getMin(); final Class<? extends Number> numberClass = _min.getClass(); _builder.newLineIfNotEmpty();
void validate(final String str) { if (lengthConstraint != null) { checkArgument(lengthConstraint.getAllowedRanges().contains(str.length()), "String '%s' does not match allowed length constraint %s", lengthConstraint); } } }
private static final Collection<String> createExpressions(final Collection<LengthConstraint> constraints) { final Collection<String> ret = new ArrayList<>(constraints.size()); for (LengthConstraint l : constraints) { final StringBuilder sb = new StringBuilder("length >"); // We have to deal with restrictions being out of integer's range if (l.getMin().longValue() <= Integer.MAX_VALUE) { sb.append('='); } sb.append(' ').append(l.getMin().intValue()); final int max = l.getMax().intValue(); if (max < Integer.MAX_VALUE) { sb.append(" && length <= ").append(max); } ret.add(sb.toString()); } return ret; }
@Override void validate(final byte[] value) { // FIXME: throw an exception capturing the constraint violation checkArgument(lengthConstraint.getAllowedRanges().contains(value.length), "Value length %s does not match constraint %s", value.length, lengthConstraint); } }
private static void processStringType(final StringTypeDefinition stringType, final JSONObject property) throws JSONException { StringTypeDefinition type = stringType; List<LengthConstraint> lengthConstraints = stringType.getLengthConstraints(); while (lengthConstraints.isEmpty() && type.getBaseType() != null) { type = type.getBaseType(); lengthConstraints = type.getLengthConstraints(); } // FIXME: json-schema is not expressive enough to capture min/max laternatives. We should find the true minimum // and true maximum implied by the constraints and use that. for (LengthConstraint lengthConstraint : lengthConstraints) { Number min = lengthConstraint.getMin(); Number max = lengthConstraint.getMax(); property.putOpt(MIN_LENGTH_KEY, min); property.putOpt(MAX_LENGTH_KEY, max); } property.put(TYPE_KEY, STRING); }
private static String createLengthString(final LengthConstraint constraint) { return new ArrayList<>(constraint.getAllowedRanges().asRanges()).toString(); }
_builder.append(_importedName_4, ""); _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, "");
void validate(final String str) { if (lengthConstraint != null) { checkArgument(lengthConstraint.getAllowedRanges().contains(str.length()), "String '%s' does not match allowed length constraint %s", lengthConstraint); } } }
Iterator<LengthConstraint> _iterator = _lengthConstraints_1.iterator(); LengthConstraint _next = _iterator.next(); Number _min = _next.getMin(); final Class<? extends Number> numberClass = _min.getClass(); _builder.newLineIfNotEmpty(); _builder.append(_importedName_5, " "); _builder.append(".closed("); Number _min_1 = r.getMin(); String _numericValue = this.numericValue(numberClass, _min_1); _builder.append(_numericValue, " "); _builder.append(", "); Number _max = r.getMax(); String _numericValue_1 = this.numericValue(numberClass, _max); _builder.append(_numericValue_1, " ");
private static String createLengthString(final LengthConstraint constraint) { return new ArrayList<>(constraint.getAllowedRanges().asRanges()).toString(); }
private static Collection<String> createExpressions(final LengthConstraint constraint) { final Set<Range<Integer>> constraints = constraint.getAllowedRanges().asRanges(); final Collection<String> ret = new ArrayList<>(constraints.size()); for (Range<Integer> l : constraints) { final StringBuilder sb = new StringBuilder("length >"); // We have to deal with restrictions being out of integer's range if (l.lowerEndpoint() <= Integer.MAX_VALUE) { sb.append('='); } sb.append(' ').append(l.lowerEndpoint()); final int max = l.upperEndpoint(); if (max < Integer.MAX_VALUE) { sb.append(" && length <= ").append(max); } ret.add(sb.toString()); } return ret; }
private static Collection<String> createExpressions(final LengthConstraint constraint) { final Set<Range<Integer>> constraints = constraint.getAllowedRanges().asRanges(); final Collection<String> ret = new ArrayList<>(constraints.size()); for (Range<Integer> l : constraints) { // We have to deal with restrictions being out of integer's range final int min = l.lowerEndpoint().intValue(); final int max = l.upperEndpoint().intValue(); if (min > 0 || max < Integer.MAX_VALUE) { final StringBuilder sb = new StringBuilder().append("length "); if (min != max) { sb.append('>'); if (min <= Integer.MAX_VALUE) { sb.append('='); } sb.append(' ').append(min); if (max < Integer.MAX_VALUE) { sb.append(" && length <= ").append(max); } } else { // Single-value, use a direct comparison sb.append("== ").append(min); } ret.add(sb.toString()); } else { // This range is implicitly capped by String/byte[] length returns LOG.debug("Constraint {} implied by int type value domain, skipping", l); } } return ret; }
final Range<Integer> span = baseLengths.getAllowedRanges().span(); final RangeSet<Integer> baseRanges = baseLengths.getAllowedRanges(); for (Range<Integer> range : allowed.asRanges()) { if (!baseRanges.encloses(range)) {
final Range<Integer> span = baseLengths.getAllowedRanges().span(); final RangeSet<Integer> baseRanges = baseLengths.getAllowedRanges(); for (Range<Integer> range : allowed.asRanges()) { if (!baseRanges.encloses(range)) {