R/construct-character.R

Defines functions deconstruct.character construct.character

#' @export
construct.character <- function(data, defn, envir = parent.frame(), ...) {

  s4_defn <- try(getClass(defn), silent = TRUE)
  un_defn <- try(get(defn, envir = envir), silent = TRUE)

  if (!inherits(s4_defn, "try-error")) {

    construct(data, s4_defn)

  } else if (!inherits(un_defn, "try-error")) {

    construct(data, un_defn)

  } else {

    stop("Cannot find any matching constructors") # nocov

  }

}

#' @export
deconstruct.character <- function(objs, defn, envir = parent.frame(), ...) {

  s4_defn <- try(getClass(defn), silent = TRUE)
  un_defn <- try(get(defn, envir = envir), silent = TRUE)

  if (!inherits(s4_defn, "try-error")) {

    deconstruct(objs, s4_defn)

  } else if (!inherits(un_defn, "try-error")) {

    deconstruct(objs, un_defn)

  } else {

    stop("Cannot find any matching constructors") # nocov

  }

}
tjpalanca/dbtools documentation built on Oct. 7, 2021, 6:43 a.m.