A combinator that takes a chain of predicates and implements logical AND between them.
A combinator that takes a chain of predicates and implements logical AND between them.
The type on which this validator operates.
Simple boolean combinators.
Combinators that operate on collections and collection-like structures.
A validator that operates on objects that can be empty, and succeeds only if the provided instance is empty.
A validator that operates on objects that can be empty, and succeeds only if the provided instance is empty.
A type that implements isEmpty: Boolean
(see com.wix.accord.combinators.HasEmpty).
A validator that succeeds only if the provided string starts with the specified suffix.
A validator that succeeds only if the provided string starts with the specified suffix.
A validator that succeeds only if the validated object is equal to the specified value.
A validator that succeeds only if the validated object is equal to the specified value. Respects nulls and delegates equality checks to java.lang.Object.equals.
A validator that succeeds only for value equivalent (as determined by scala.math.Ordering.equiv) to the specified bound.
A validator that succeeds only for value equivalent (as determined by scala.math.Ordering.equiv) to the specified bound.
The object type this validator operates on.
The fixed value against which values are validated.
A prefix for violation messages; for example, specifying "got"
will result in a
constraint violation like "got 10, expected 5".
Evidence that T
is ordered (i.e. a scala.math.Ordering of T
is available).
A validator that always fails with a specific violation.
A validator that always fails with a specific violation.
The type on which this validator operates.
Non type-specific combinators.
A validator that succeeds only for values greater than the specified bound.
A validator that succeeds only for values greater than the specified bound.
The object type this validator operates on.
The bound against which values are validated.
A prefix for violation messages; for example, specifying "got"
will result in a
constraint violation like "got 5, expected more than 10".
Evidence that T
is ordered (i.e. a scala.math.Ordering of T
is available).
A validator that succeeds only for values greater than, or equal to, the specified bound.
A validator that succeeds only for values greater than, or equal to, the specified bound.
The object type this validator operates on.
The bound against which values are validated.
A prefix for violation messages; for example, specifying "got"
will result in a
constraint violation like "got 5, expected 10 or more".
Evidence that T
is ordered (i.e. a scala.math.Ordering of T
is available).
A structural type representing any object that can be empty.
A structural type representing any object that can be empty.
A base trait for a validator that succeeds only for values between the specified bounds, and may be inclusive or exclusive.
A base trait for a validator that succeeds only for values between the specified bounds, and may be inclusive or exclusive.
The object type this validator operates on.
A validator that succeeds only for values between the specified bounds (exclusive of the upper bound).
A validator that succeeds only for values between the specified bounds (exclusive of the upper bound). The com.wix.accord.combinators.OrderingCombinators.InRange.inclusive method can be used to derive a validator that includes the upper bound.
The object type this validator operates on.
The lower bound against which values are validated.
The lower bound against which values are validated.
A prefix for violation messages; for example, specifying "got"
will result in a
constraint violation like "got 10, expected between 5 and 7 (exclusively)".
Evidence that T
is ordered (i.e. a scala.math.Ordering of T
is available).
A validator that succeeds only for values between the specified bounds (both bounds are inclusive).
A validator that succeeds only for values between the specified bounds (both bounds are inclusive). The com.wix.accord.combinators.OrderingCombinators.InRange.exclusive method can be used to derive a validator that excludes the upper bound.
The object type this validator operates on.
The lower bound against which values are validated.
The lower bound against which values are validated.
A prefix for violation messages; for example, specifying "got"
will result in a
constraint violation like "got 10, expected between 5 and 7".
Evidence that T
is ordered (i.e. a scala.math.Ordering of T
is available).
A boolean validator that matches only on false.
A boolean validator that matches only on false.
A validator that succeeds only if the provided object is not null
.
A validator that succeeds only if the provided object is not null
.
A validator that succeeds only if the provided object is null
.
A validator that succeeds only if the provided object is null
.
A boolean validator that matches only on true.
A boolean validator that matches only on true.
A validator that succeeds only for values lesser than the specified bound.
A validator that succeeds only for values lesser than the specified bound.
The object type this validator operates on.
The bound against which values are validated.
A prefix for violation messages; for example, specifying "got"
will result in a
constraint violation like "got 10, expected less than 10".
Evidence that T
is ordered (i.e. a scala.math.Ordering of T
is available).
A validator that succeeds only for values less than, or equal to, the specified bound.
A validator that succeeds only for values less than, or equal to, the specified bound.
The object type this validator operates on.
The bound against which values are validated.
A prefix for violation messages; for example, specifying "got"
will result in a
constraint violation like "got 10, expected 5 or less".
Evidence that T
is ordered (i.e. a scala.math.Ordering of T
is available).
A validator that succeeds only if the provided string matches the specified pattern.
A validator that succeeds only if the provided string matches the specified pattern.
A validator that always succeeds.
A validator that always succeeds.
The type on which this validator operates.
A validator that operates on objects that can be empty, and succeeds only if the provided instance is not empty.
A validator that operates on objects that can be empty, and succeeds only if the provided instance is not empty.
A type that implements isEmpty: Boolean
(see com.wix.accord.combinators.HasEmpty).
A validator that succeeds only if the validated object is not equal to the specified value.
A validator that succeeds only if the validated object is not equal to the specified value. Respects nulls and delegates equality checks to java.lang.Object.equals.
A combinator that takes a chain of predicates and implements logical OR between them.
A combinator that takes a chain of predicates and implements logical OR between them. When all predicates fail, a com.wix.accord.GroupViolation is produced; the predicates comprise the group's children.
The type on which this validator operates.
Provides combinators over objects implementing scala.math.Ordering.
Provides combinators over objects implementing scala.math.Ordering.
Implementation note: All methods here should only require scala.math.PartialOrdering, but then the default implicits are defined in the scala.math.Ordering companion and would therefore not be imported by default at the call site.
A validator that succeeds only if the provided string starts with the specified prefix.
A validator that succeeds only if the provided string starts with the specified prefix.
Combinators that operate specifically on strings.
A validator which merely delegates to another, implicitly available validator.
A validator which merely delegates to another, implicitly available validator. This is necessary for the description generation to work correctly, e.g. in the case where:
case class Person( firstName: String, lastName: String )
case class Classroom( teacher: Person, students: Seq[ Person ] )
implicit val personValidator = validator[ Person ] { p => p.firstName is notEmpty p.lastName is notEmpty }
implicit val classValidator = validator[ Classroom ] { c =>
c.teacher is valid
c.students.each is valid
c.students have size > 0
}
c.teacher
actually delegates to the personValidator
, which means a correct error message would be
a com.wix.accord.GroupViolation aggregating the actual rule violations.
The object type this validator operates on. An implicit com.wix.accord.Validator
over type T
must be in scope.
An implicit conversion to enable any collection-like object (e.
An implicit conversion to enable any collection-like object (e.g. strings, options) to be handled by the com.wix.accord.combinators.CollectionCombinators.Empty and com.wix.accord.combinators.CollectionCombinators.NotEmpty combinators.
java.lang.String does not directly implement isEmpty
(in practice it is implemented in
scala.collection.IndexedSeqOptimized, via an implicit conversion and an inheritance stack), and this is
a case where the Scala compiler does not always infer structural types correctly. By requiring
a view bound from T
to scala.collection.GenTraversableOnce we can force any collection-like structure
to conform to the structural type com.wix.accord.combinators.HasEmpty, and by requiring
a view bound from T
to com.wix.accord.combinators.HasEmpty at the call site (e.g.
com.wix.accord.dsl.empty) we additionally support any class that directly conforms to the
structural type as well.
The type that conforms, directly or implicitly, to com.wix.accord.combinators.HasEmpty.
An object that is, or is implicitly convertible to, scala.collection.GenTraversableOnce.
The specified object, strictly-typed as com.wix.accord.combinators.HasEmpty.
Aggregates all implemented combinators for use by the DSL. Can, though not intended to, be used directly by end-user code.