Digits class

A constraint that limits how many digits a number has before and after the decimal point.

Use it when the value must fit a fixed-point column or format, such as amounts with at most 6 integer and 2 fraction digits. Numbers and BigInts are counted without trailing zeros (1.50 has one fraction digit, 1000 four integer digits); numeric strings as written ('1.50' has two, like new BigDecimal("1.50")), and a string that is not a number fails. null passes. The arguments of a field error are [field, fraction, integer]. On a value that is not a number or string the generator fails the build and the validator throws an UnexpectedTypeException, as Hibernate Validator does.

// Up to 999999.99, as in a DECIMAL(8, 2) column.
@Introspected()
class Invoice {
  @Digits(integer: 6, fraction: 2)
  double total = 0;
}

Spring (Java):

class Invoice {
  @Digits(integer = 6, fraction = 2)
  private BigDecimal total;
}
Inheritance

Constructors

Digits({required int integer, required int fraction, String? message, List<Type> groups = const []})
The constraint for at most integer digits before the point and fraction after it; message replaces the default message, and groups limits it to those groups.
const

Properties

attributes → Map<String, Object?>
The settings of the constraint by name, such as {'max': 20, 'min': 0}: they fill the {max} placeholders of messages and, sorted by name, become the arguments {1}, {2}, ... of field errors. Empty by default; override it when a custom constraint has settings.
no setteroverride
defaultMessage → String
The text of a violation when message is not set, with the same placeholders, such as size must be between {min} and {max}.
no setteroverride
fraction → int
The most digits allowed after the decimal point; 0 allows whole numbers only. Must not be negative.
final
groups → List<Type>
The validation groups the constraint belongs to, such as [OnUpdate]; it is only checked when one of them is asked for. Empty means Default.
finalinherited
hashCode → int
The hash code for this object.
no setterinherited
integer → int
The most digits allowed before the decimal point; must not be negative.
final
message → String?
The text of a violation instead of defaultMessage; null keeps the default.
finalinherited
name → String
The error code of a violation, such as NotBlank: the start of the message codes (NotBlank.signup.name, ..., NotBlank) and the Jakarta name of the constraint. Custom constraints usually return their class name.
no setteroverride
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

appliesTo(List<Type> requested) → bool
Whether the constraint is checked when a validation asks for the requested groups: when one of its groups is requested.
inherited
checkParameters() → void
Throws a ConstraintDeclarationException when the constraint's own settings are invalid: Size(min: -1), min > max, a malformed regular expression. Does nothing by default.
override
interpolate(String template) → String
template with its {attribute} placeholders replaced by the values of attributes; other placeholders and ${...} expressions stay, and the escapes \{, \}, \$, \\ become the literal characters.
inherited
interpolatedMessage() → String
message, or defaultMessage, with the {attribute} placeholders filled in; message keys and ${...} expressions stay, since only the validator can resolve them.
inherited
isValid(Object? value) → bool
Whether value satisfies the constraint; the method a custom constraint implements.
override
isValidWithContext(Object? value, ConstraintValidatorContext context) → bool
Whether value satisfies the constraint, with access to the validation context; the method BeanValidator calls. By default it returns isValid.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
supports(Object value) → bool
Whether the constraint can check a value of this type at all; value is never null. @Size supports strings, collections and maps, not an int.
override
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited