Skip to contents

validate() is a variant of assert() that is specifically intended to be used inside of an S4 validity method definition.

Usage

validate(..., msg = NULL)

Arguments

...

Any number of R expressions that return logical(1), each of which should evaluate to TRUE. Rather than combining expressions with &&, separate them by commas so that better error messages can be generated.

msg

NULL or character(1). Custom message to return.

Value

TRUE on success, or character(1) on failure, containing an error message.

Details

Like assert(), validate() returns TRUE on success. However, on failure it returns a character instead of a stop() call. This is the current recommended practice for defining S4 validity methods inside of a setValidity() call. Refer to the documentation in the methods package, specifically validObject() for detailed information on S4 validity methods.

Note

Updated 2021-10-08.

See also

Examples

## TRUE ====
validate(
    is.atomic("example"),
    is.character("example")
)
#> [1] TRUE

## FALSE ====
validate(
    isFlag("xxx"),
    isPositive(-1)
)
#> [1] "[1] isFlag(\"xxx\") is not TRUE.\nCause: 'xxx' is not a boolean flag ('TRUE'/'FALSE').\n[2] isPositive(-1) is not TRUE.\nCause: too low\nIf supported, 'updateObject' may help resolve these issues."