R/validate-generic.R

Defines functions validate_generic

validation_function_dispatch_table <-
    list("DM"=validate_dm,
         "SC"=validate_sc,
         "QS"=validate_qsmd,
         "EX"=validate_ex,
         "FT"=validate_ft);

#' validate a dataset from the set of known set types
#' @param - dataset - a dataset (data frame) with a DOMAIN column
#'     indicating the domain validator to apply.
#' @return a validation state object containing $messages and
#'     $warnings. If $messages is empty then the set passes.
#' @export
validate_generic <- function(dataset){
    if(mode(dataset) == "character") {
        validate_generic(val_read_data(dataset));
    } else {
        if(!("DOMAIN" %in% names(dataset))){
            stop("Can't validate a data set which does not have a DOMAIN column.")
        }
        domain <- dataset$DOMAIN[[1]];
        if(!(domain %in% names(validation_function_dispatch_table))){
            stop(sprintf("Can't validate a data set from DOMAIN: %s", domain));
        }
        validation_function_dispatch_table[[domain]](fresh_state(dataset));
    }
}
Vincent-Toups/bacpac_val documentation built on Dec. 2, 2022, 10:20 a.m.