Package

com.wix.accord

combinators

Permalink

package combinators

Aggregates all implemented combinators for use by the DSL. Can, though not intended to, be used directly by end-user code.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. combinators
  2. BooleanCombinators
  3. OrderingCombinators
  4. StringCombinators
  5. CollectionCombinators
  6. GeneralPurposeCombinators
  7. AnyRef
  8. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. class AnInstanceOf[T <: AnyRef] extends NullSafeValidator[AnyRef]

    Permalink

    A validator that succeeds only if the validated object is an instance of the specified type.

    A validator that succeeds only if the validated object is an instance of the specified type. Respects nulls.

    T

    The desired type for objects under validation.

    Definition Classes
    GeneralPurposeCombinators
  2. class And[T] extends Validator[T]

    Permalink

    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.

    T

    The type on which this validator operates.

    Definition Classes
    GeneralPurposeCombinators
  3. class Blank extends NullSafeValidator[String]

    Permalink

    A validator that succeeds only if the provided string is blank (i.e.

    A validator that succeeds only if the provided string is blank (i.e. empty or whitespace-only). Note that java.lang.String.trim is used to eliminate whitespace.

    Definition Classes
    StringCombinators
  4. trait BooleanCombinators extends AnyRef

    Permalink

    Simple boolean combinators.

  5. trait CollectionCombinators extends AnyRef

    Permalink

    Combinators that operate on collections and collection-like structures.

  6. class Conditional[T] extends Validator[T]

    Permalink

    A validator that branches at runtime based on the value of the object under validation.

    A validator that branches at runtime based on the value of the object under validation. Supports an optional fallback validator.

    T

    The object type this validator operates on.

    Definition Classes
    GeneralPurposeCombinators
  7. class Empty[T <: AnyRef] extends NullSafeValidator[T]

    Permalink

    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.

    T

    A type that implements isEmpty: Boolean (see com.wix.accord.combinators.HasEmpty).

    Definition Classes
    CollectionCombinators
    See also

    com.wix.accord.combinators.NotEmpty

  8. class EndsWith extends NullSafeValidator[String]

    Permalink

    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.

    Definition Classes
    StringCombinators
  9. class EqualTo[T] extends Validator[T]

    Permalink

    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.

    Definition Classes
    GeneralPurposeCombinators
  10. case class EquivalentTo[T](other: T, prefix: String)(implicit ordering: Ordering[T], nullability: Nullability[T]) extends MaybeNullSafeValidator[T] with Product with Serializable

    Permalink

    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.

    T

    The object type this validator operates on.

    other

    The fixed value against which values are validated.

    prefix

    A prefix for violation messages; for example, specifying "got" will result in a constraint violation like "got 10, expected 5".

    ordering

    Evidence that T is ordered (i.e. a scala.math.Ordering of T is available).

    Definition Classes
    OrderingCombinators
  11. class Fail[T] extends Validator[T]

    Permalink

    A validator that always fails with a specific violation.

    A validator that always fails with a specific violation.

    T

    The type on which this validator operates.

    Definition Classes
    GeneralPurposeCombinators
  12. trait GeneralPurposeCombinators extends AnyRef

    Permalink

    Non type-specific combinators.

  13. case class GreaterThan[T](bound: T, prefix: String)(implicit ordering: Ordering[T], nullability: Nullability[T]) extends MaybeNullSafeValidator[T] with Product with Serializable

    Permalink

    A validator that succeeds only for values greater than the specified bound.

    A validator that succeeds only for values greater than the specified bound.

    T

    The object type this validator operates on.

    bound

    The bound against which values are validated.

    prefix

    A prefix for violation messages; for example, specifying "got" will result in a constraint violation like "got 5, expected more than 10".

    ordering

    Evidence that T is ordered (i.e. a scala.math.Ordering of T is available).

    Definition Classes
    OrderingCombinators
  14. case class GreaterThanOrEqual[T](bound: T, prefix: String)(implicit ordering: Ordering[T], nullability: Nullability[T]) extends MaybeNullSafeValidator[T] with Product with Serializable

    Permalink

    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.

    T

    The object type this validator operates on.

    bound

    The bound against which values are validated.

    prefix

    A prefix for violation messages; for example, specifying "got" will result in a constraint violation like "got 5, expected 10 or more".

    ordering

    Evidence that T is ordered (i.e. a scala.math.Ordering of T is available).

    Definition Classes
    OrderingCombinators
  15. type HasEmpty = AnyRef { def isEmpty: Boolean }

    Permalink

    A structural type representing any object that can be empty.

    A structural type representing any object that can be empty.

    Definition Classes
    CollectionCombinators
  16. case class In[T](set: Set[T], prefix: String) extends BaseValidator[T] with Product with Serializable

    Permalink

    A validator that succeeds only if the object exists in the target collection.

    A validator that succeeds only if the object exists in the target collection.

    Definition Classes
    CollectionCombinators
  17. sealed trait InRange[T] extends Validator[T]

    Permalink

    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.

    T

    The object type this validator operates on.

    Definition Classes
    OrderingCombinators
  18. case class InRangeExclusive[T](lowerBound: T, upperBound: T, prefix: String)(implicit ordering: Ordering[T], nullability: Nullability[T]) extends MaybeNullSafeValidator[T] with InRange[T] with Product with Serializable

    Permalink

    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.

    T

    The object type this validator operates on.

    lowerBound

    The lower bound against which values are validated.

    upperBound

    The lower bound against which values are validated.

    prefix

    A prefix for violation messages; for example, specifying "got" will result in a constraint violation like "got 10, expected between 5 and 7 (exclusively)".

    ordering

    Evidence that T is ordered (i.e. a scala.math.Ordering of T is available).

    Definition Classes
    OrderingCombinators
  19. case class InRangeInclusive[T](lowerBound: T, upperBound: T, prefix: String)(implicit ordering: Ordering[T], nullability: Nullability[T]) extends MaybeNullSafeValidator[T] with InRange[T] with Product with Serializable

    Permalink

    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.

    T

    The object type this validator operates on.

    lowerBound

    The lower bound against which values are validated.

    upperBound

    The lower bound against which values are validated.

    prefix

    A prefix for violation messages; for example, specifying "got" will result in a constraint violation like "got 10, expected between 5 and 7".

    ordering

    Evidence that T is ordered (i.e. a scala.math.Ordering of T is available).

    Definition Classes
    OrderingCombinators
  20. class IsFalse extends BaseValidator[Boolean]

    Permalink

    A boolean validator that matches only on false.

    A boolean validator that matches only on false.

    Definition Classes
    BooleanCombinators
  21. class IsNotNull extends BaseValidator[AnyRef]

    Permalink

    A validator that succeeds only if the provided object is not null.

    A validator that succeeds only if the provided object is not null.

    Definition Classes
    GeneralPurposeCombinators
  22. class IsNull extends BaseValidator[AnyRef]

    Permalink

    A validator that succeeds only if the provided object is null.

    A validator that succeeds only if the provided object is null.

    Definition Classes
    GeneralPurposeCombinators
  23. class IsTrue extends BaseValidator[Boolean]

    Permalink

    A boolean validator that matches only on true.

    A boolean validator that matches only on true.

    Definition Classes
    BooleanCombinators
  24. case class LesserThan[T](bound: T, prefix: String)(implicit ordering: Ordering[T], nullability: Nullability[T]) extends MaybeNullSafeValidator[T] with Product with Serializable

    Permalink

    A validator that succeeds only for values lesser than the specified bound.

    A validator that succeeds only for values lesser than the specified bound.

    T

    The object type this validator operates on.

    bound

    The bound against which values are validated.

    prefix

    A prefix for violation messages; for example, specifying "got" will result in a constraint violation like "got 10, expected less than 10".

    ordering

    Evidence that T is ordered (i.e. a scala.math.Ordering of T is available).

    Definition Classes
    OrderingCombinators
  25. case class LesserThanOrEqual[T](bound: T, prefix: String)(implicit ordering: Ordering[T], nullability: Nullability[T]) extends MaybeNullSafeValidator[T] with Product with Serializable

    Permalink

    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.

    T

    The object type this validator operates on.

    bound

    The bound against which values are validated.

    prefix

    A prefix for violation messages; for example, specifying "got" will result in a constraint violation like "got 10, expected 5 or less".

    ordering

    Evidence that T is ordered (i.e. a scala.math.Ordering of T is available).

    Definition Classes
    OrderingCombinators
  26. class MatchesRegex extends NullSafeValidator[String]

    Permalink

    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.

    Definition Classes
    StringCombinators
  27. class NilValidator[T] extends Validator[T]

    Permalink

    A validator that always succeeds.

    A validator that always succeeds.

    T

    The type on which this validator operates.

    Definition Classes
    GeneralPurposeCombinators
  28. class NotAnInstanceOf[T <: AnyRef] extends NullSafeValidator[AnyRef]

    Permalink

    A validator that fails only if the validated object is an instance of the specified type.

    A validator that fails only if the validated object is an instance of the specified type. Respects nulls.

    T

    The undesirable type for objects under validation.

    Definition Classes
    GeneralPurposeCombinators
  29. class NotBlank extends NullSafeValidator[String]

    Permalink

    A validator that succeeds only if the provided string is not blank (i.e.

    A validator that succeeds only if the provided string is not blank (i.e. empty or whitespace-only). Note that java.lang.String.trim is used to eliminate whitespace.

    Definition Classes
    StringCombinators
  30. class NotEmpty[T <: AnyRef] extends NullSafeValidator[T]

    Permalink

    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.

    T

    A type that implements isEmpty: Boolean (see com.wix.accord.combinators.HasEmpty).

    Definition Classes
    CollectionCombinators
    See also

    com.wix.accord.combinators.Empty

  31. class NotEqualTo[T] extends Validator[T]

    Permalink

    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.

    Definition Classes
    GeneralPurposeCombinators
  32. class Or[T] extends Validator[T]

    Permalink

    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.

    T

    The type on which this validator operates.

    Definition Classes
    GeneralPurposeCombinators
  33. trait OrderingCombinators extends AnyRef

    Permalink

    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.

  34. class StartsWith extends NullSafeValidator[String]

    Permalink

    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.

    Definition Classes
    StringCombinators
  35. trait StringCombinators extends AnyRef

    Permalink

    Combinators that operate specifically on strings.

  36. class Valid[T] extends Validator[T]

    Permalink

    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.

    T

    The object type this validator operates on. An implicit com.wix.accord.Validator over type T must be in scope.

    Definition Classes
    GeneralPurposeCombinators

Value Members

  1. object Distinct extends Validator[Traversable[_]]

    Permalink

    A validator that succeeds only if the provided collection has no duplicate elements.

    A validator that succeeds only if the provided collection has no duplicate elements.

    Definition Classes
    CollectionCombinators
  2. implicit def genericTraversableOnce2HasEmpty[T](gto: T)(implicit ev: (T) ⇒ GenTraversableOnce[_]): HasEmpty

    Permalink

    An implicit conversion to enable any collection-like object (e.g.

    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.

    T

    The type that conforms, directly or implicitly, to com.wix.accord.combinators.HasEmpty.

    gto

    An object that is, or is implicitly convertible to, scala.collection.GenTraversableOnce.

    returns

    The specified object, strictly-typed as com.wix.accord.combinators.HasEmpty.

    Definition Classes
    CollectionCombinators

Inherited from BooleanCombinators

Inherited from OrderingCombinators

Inherited from StringCombinators

Inherited from CollectionCombinators

Inherited from GeneralPurposeCombinators

Inherited from AnyRef

Inherited from Any

Ungrouped