R/DefaultClassification.r

# Netherlands Biodiversity API
#
# Access to the digitised Natural History collection at the Naturalis Biodiversity Center
#
# OpenAPI spec version: v2
# Contact: support@naturalis.nl
# Generated by: https://github.com/swagger-api/swagger-codegen.git

#'
#' @docType class
#'
#' @format R6 class
#'
#' @usage
#' # DefaultClassification$new()
#'
#' @format
#' R6 class
#'
#' @title DefaultClassification Class
#'
#' @description
#' For more information on the NBA object model, please refer to the
#' official NBA documentation at
#' \href{https://docs.biodiversitydata.nl}{https://docs.biodiversitydata.nl} and
#' the NBA model and endpoints reference at
#' \href{https://docs.biodiversitydata.nl/endpoints-reference}{https://docs.biodiversitydata.nl/endpoints-reference}.
#'
#' @details Model class for DefaultClassification objects.
#'
#'
#' @field kingdom  character
#'
#' @field phylum  character
#'
#' @field className  character
#'
#' @field order  character
#'
#' @field superFamily  character
#'
#' @field family  character
#'
#' @field genus  character
#'
#' @field subgenus  character
#'
#' @field specificEpithet  character
#'
#' @field infraspecificEpithet  character
#'
#' @field infraspecificRank  character
#'
#'
#'
#' @section Methods:
#' \describe{
#'
#' \item{\code{$new()}}{
#'
#'   Constructor DefaultClassification object.
#'
#' }
#' \item{\code{$fromList(DefaultClassificationList)}}{
#'
#'   Create DefaultClassification object from list.
#'
#' }
#'
#' \item{\code{$toList()}}{
#'
#'   Get list representation of DefaultClassification.
#'
#' }
#' \item{\code{fromJSONString(DefaultClassificationJson)}}{
#'
#'   Create DefaultClassification object from JSON.
#'
#' }
#' \item{\code{toJSONString(pretty=TRUE)}}{
#'
#'   Get JSON representation of DefaultClassification.
#'
#' }
#' }
#' @importFrom R6 R6Class
#' @importFrom jsonlite fromJSON toJSON
#' @export
DefaultClassification <- R6::R6Class(
  "DefaultClassification",
  public = list(
    `kingdom` = NULL,
    `phylum` = NULL,
    `className` = NULL,
    `order` = NULL,
    `superFamily` = NULL,
    `family` = NULL,
    `genus` = NULL,
    `subgenus` = NULL,
    `specificEpithet` = NULL,
    `infraspecificEpithet` = NULL,
    `infraspecificRank` = NULL,
    initialize = function(
                              `kingdom`,
                              `phylum`,
                              `className`,
                              `order`,
                              `superFamily`,
                              `family`,
                              `genus`,
                              `subgenus`,
                              `specificEpithet`,
                              `infraspecificEpithet`,
                              `infraspecificRank`) {
      if (!missing(`kingdom`)) {
        stopifnot(
          is.character(`kingdom`),
          length(`kingdom`) == 1
        )
        self[["kingdom"]] <- `kingdom`
      }
      if (!missing(`phylum`)) {
        stopifnot(
          is.character(`phylum`),
          length(`phylum`) == 1
        )
        self[["phylum"]] <- `phylum`
      }
      if (!missing(`className`)) {
        stopifnot(
          is.character(`className`),
          length(`className`) == 1
        )
        self[["className"]] <- `className`
      }
      if (!missing(`order`)) {
        stopifnot(
          is.character(`order`),
          length(`order`) == 1
        )
        self[["order"]] <- `order`
      }
      if (!missing(`superFamily`)) {
        stopifnot(
          is.character(`superFamily`),
          length(`superFamily`) == 1
        )
        self[["superFamily"]] <- `superFamily`
      }
      if (!missing(`family`)) {
        stopifnot(
          is.character(`family`),
          length(`family`) == 1
        )
        self[["family"]] <- `family`
      }
      if (!missing(`genus`)) {
        stopifnot(
          is.character(`genus`),
          length(`genus`) == 1
        )
        self[["genus"]] <- `genus`
      }
      if (!missing(`subgenus`)) {
        stopifnot(
          is.character(`subgenus`),
          length(`subgenus`) == 1
        )
        self[["subgenus"]] <- `subgenus`
      }
      if (!missing(`specificEpithet`)) {
        stopifnot(
          is.character(`specificEpithet`),
          length(`specificEpithet`) == 1
        )
        self[["specificEpithet"]] <- `specificEpithet`
      }
      if (!missing(`infraspecificEpithet`)) {
        stopifnot(
          is.character(`infraspecificEpithet`),
          length(`infraspecificEpithet`) == 1
        )
        self[["infraspecificEpithet"]] <- `infraspecificEpithet`
      }
      if (!missing(`infraspecificRank`)) {
        stopifnot(
          is.character(`infraspecificRank`),
          length(`infraspecificRank`) == 1
        )
        self[["infraspecificRank"]] <- `infraspecificRank`
      }
    },
    toList = function() {
      DefaultClassificationList <- list()
      if (!is.null(self[["kingdom"]])) {
        DefaultClassificationList[["kingdom"]] <-
          self[["kingdom"]]
      }
      if (!is.null(self[["phylum"]])) {
        DefaultClassificationList[["phylum"]] <-
          self[["phylum"]]
      }
      if (!is.null(self[["className"]])) {
        DefaultClassificationList[["className"]] <-
          self[["className"]]
      }
      if (!is.null(self[["order"]])) {
        DefaultClassificationList[["order"]] <-
          self[["order"]]
      }
      if (!is.null(self[["superFamily"]])) {
        DefaultClassificationList[["superFamily"]] <-
          self[["superFamily"]]
      }
      if (!is.null(self[["family"]])) {
        DefaultClassificationList[["family"]] <-
          self[["family"]]
      }
      if (!is.null(self[["genus"]])) {
        DefaultClassificationList[["genus"]] <-
          self[["genus"]]
      }
      if (!is.null(self[["subgenus"]])) {
        DefaultClassificationList[["subgenus"]] <-
          self[["subgenus"]]
      }
      if (!is.null(self[["specificEpithet"]])) {
        DefaultClassificationList[["specificEpithet"]] <-
          self[["specificEpithet"]]
      }
      if (!is.null(self[["infraspecificEpithet"]])) {
        DefaultClassificationList[["infraspecificEpithet"]] <-
          self[["infraspecificEpithet"]]
      }
      if (!is.null(self[["infraspecificRank"]])) {
        DefaultClassificationList[["infraspecificRank"]] <-
          self[["infraspecificRank"]]
      }
      ## omit empty nested lists in returned list
      DefaultClassificationList[vapply(
        DefaultClassificationList,
        length,
        FUN.VALUE = integer(1)
      ) > 0]
    },
    fromList = function(DefaultClassificationList,
                            typeMapping = NULL) {
      self[["kingdom"]] <-
        DefaultClassificationList[["kingdom"]]
      self[["phylum"]] <-
        DefaultClassificationList[["phylum"]]
      self[["className"]] <-
        DefaultClassificationList[["className"]]
      self[["order"]] <-
        DefaultClassificationList[["order"]]
      self[["superFamily"]] <-
        DefaultClassificationList[["superFamily"]]
      self[["family"]] <-
        DefaultClassificationList[["family"]]
      self[["genus"]] <-
        DefaultClassificationList[["genus"]]
      self[["subgenus"]] <-
        DefaultClassificationList[["subgenus"]]
      self[["specificEpithet"]] <-
        DefaultClassificationList[["specificEpithet"]]
      self[["infraspecificEpithet"]] <-
        DefaultClassificationList[["infraspecificEpithet"]]
      self[["infraspecificRank"]] <-
        DefaultClassificationList[["infraspecificRank"]]
      invisible(self)
    },
    toJSONString = function(pretty = TRUE) {
      jsonlite::toJSON(
        self$toList(),
        simplifyVector = TRUE,
        auto_unbox = TRUE,
        pretty = pretty
      )
    },
    fromJSONString = function(DefaultClassificationJson,
                                  typeMapping = NULL) {
      DefaultClassificationList <- jsonlite::fromJSON(
        DefaultClassificationJson,
        simplifyVector = FALSE
      )
      self <- self$fromList(DefaultClassificationList)
      invisible(self)
    },
    print = function(...) {
      ## print class name
      cat("<DefaultClassification>\n")
      ## print all members with values
      cat("Fields:\n")
      if (typeof(self$kingdom) == "environment") {
        cat("\tkingdom:\tobject of class", paste0("<", class(self$kingdom)[1], ">"), "\n")
      }
      else if (typeof(self$kingdom) == "list") {
        cat("\tkingdom:\tlist of length", length(self$kingdom), "\n")
      }
      else {
        cat("\tkingdom:\t", self$kingdom, "\n")
      }
      if (typeof(self$phylum) == "environment") {
        cat("\tphylum:\tobject of class", paste0("<", class(self$phylum)[1], ">"), "\n")
      }
      else if (typeof(self$phylum) == "list") {
        cat("\tphylum:\tlist of length", length(self$phylum), "\n")
      }
      else {
        cat("\tphylum:\t", self$phylum, "\n")
      }
      if (typeof(self$className) == "environment") {
        cat("\tclassName:\tobject of class", paste0("<", class(self$className)[1], ">"), "\n")
      }
      else if (typeof(self$className) == "list") {
        cat("\tclassName:\tlist of length", length(self$className), "\n")
      }
      else {
        cat("\tclassName:\t", self$className, "\n")
      }
      if (typeof(self$order) == "environment") {
        cat("\torder:\tobject of class", paste0("<", class(self$order)[1], ">"), "\n")
      }
      else if (typeof(self$order) == "list") {
        cat("\torder:\tlist of length", length(self$order), "\n")
      }
      else {
        cat("\torder:\t", self$order, "\n")
      }
      if (typeof(self$superFamily) == "environment") {
        cat("\tsuperFamily:\tobject of class", paste0("<", class(self$superFamily)[1], ">"), "\n")
      }
      else if (typeof(self$superFamily) == "list") {
        cat("\tsuperFamily:\tlist of length", length(self$superFamily), "\n")
      }
      else {
        cat("\tsuperFamily:\t", self$superFamily, "\n")
      }
      if (typeof(self$family) == "environment") {
        cat("\tfamily:\tobject of class", paste0("<", class(self$family)[1], ">"), "\n")
      }
      else if (typeof(self$family) == "list") {
        cat("\tfamily:\tlist of length", length(self$family), "\n")
      }
      else {
        cat("\tfamily:\t", self$family, "\n")
      }
      if (typeof(self$genus) == "environment") {
        cat("\tgenus:\tobject of class", paste0("<", class(self$genus)[1], ">"), "\n")
      }
      else if (typeof(self$genus) == "list") {
        cat("\tgenus:\tlist of length", length(self$genus), "\n")
      }
      else {
        cat("\tgenus:\t", self$genus, "\n")
      }
      if (typeof(self$subgenus) == "environment") {
        cat("\tsubgenus:\tobject of class", paste0("<", class(self$subgenus)[1], ">"), "\n")
      }
      else if (typeof(self$subgenus) == "list") {
        cat("\tsubgenus:\tlist of length", length(self$subgenus), "\n")
      }
      else {
        cat("\tsubgenus:\t", self$subgenus, "\n")
      }
      if (typeof(self$specificEpithet) == "environment") {
        cat("\tspecificEpithet:\tobject of class", paste0("<", class(self$specificEpithet)[1], ">"), "\n")
      }
      else if (typeof(self$specificEpithet) == "list") {
        cat("\tspecificEpithet:\tlist of length", length(self$specificEpithet), "\n")
      }
      else {
        cat("\tspecificEpithet:\t", self$specificEpithet, "\n")
      }
      if (typeof(self$infraspecificEpithet) == "environment") {
        cat("\tinfraspecificEpithet:\tobject of class", paste0("<", class(self$infraspecificEpithet)[1], ">"), "\n")
      }
      else if (typeof(self$infraspecificEpithet) == "list") {
        cat("\tinfraspecificEpithet:\tlist of length", length(self$infraspecificEpithet), "\n")
      }
      else {
        cat("\tinfraspecificEpithet:\t", self$infraspecificEpithet, "\n")
      }
      if (typeof(self$infraspecificRank) == "environment") {
        cat("\tinfraspecificRank:\tobject of class", paste0("<", class(self$infraspecificRank)[1], ">"), "\n")
      }
      else if (typeof(self$infraspecificRank) == "list") {
        cat("\tinfraspecificRank:\tlist of length", length(self$infraspecificRank), "\n")
      }
      else {
        cat("\tinfraspecificRank:\t", self$infraspecificRank, "\n")
      }
      ## print all methods
      cat("Methods:\n")
      cat("\tfromJSONString\n")
      cat("\ttoJSONString\n")
      cat("\tfromList\n")
      cat("\ttoList\n")
      cat("\tprint\n")
      invisible(self)
    }
  )
)
naturalis/nbaR documentation built on Nov. 12, 2023, 4:47 p.m.