R/opt_column_mapping.R

# mzTab-M reference implementation and validation API.
#
# This is the mzTab-M reference implementation and validation API service.
#
# The version of the OpenAPI document: 2.0.0
# Contact: nils.hoffmann@cebitec.uni-bielefeld.de
# Generated by: https://openapi-generator.tech

#' @docType class
#' @title OptColumnMapping
#' @description OptColumnMapping Class
#' @format An \code{R6Class} generator object
#' @field identifier  character 
#'
#' @field param  \link{Parameter} [optional]
#'
#' @field value  character [optional]
#'
#'
#' @importFrom R6 R6Class
#' @importFrom jsonlite fromJSON toJSON
#' @export
OptColumnMapping <- R6::R6Class(
  'OptColumnMapping',
  public = list(
    `identifier` = NULL,
    `param` = NULL,
    `value` = NULL,
    #' @description Create an OptColumnMapping
    #' @param identifier The Identifier for the mapping.
    #' @param param The CV \link{Parameter} defining the type of the value.
    #' @param value The value.
    #' @param ... local optional variable arguments
    #' 
    initialize = function(`identifier`, `param`=NULL, `value`=NULL, ...){
      local.optional.var <- list(...)
      if (!missing(`identifier`)) {
        stopifnot(is.character(`identifier`), length(`identifier`) == 1)
        self$`identifier` <- `identifier`
      }
      if (!is.null(`param`)) {
        stopifnot(R6::is.R6(`param`))
        self$`param` <- `param`
      }
      if (!is.null(`value`)) {
        stopifnot(is.character(`value`), length(`value`) == 1)
        self$`value` <- `value`
      }
    },
    #' @description Serialize to list object suitable for jsonlite
    toJSON = function() {
      OptColumnMappingObject <- list()
      if (!is.null(self$`identifier`)) {
        OptColumnMappingObject[['identifier']] <-
          rmzTabM::safe_unbox(self$`identifier`)
      }
      if (!is.null(self$`param`)) {
        OptColumnMappingObject[['param']] <-
          self$`param`$toJSON()
      }
      if (!is.null(self$`value`)) {
        OptColumnMappingObject[['value']] <-
          rmzTabM::safe_unbox(self$`value`)
      }

      OptColumnMappingObject
    },
    #' @description Deserialize from jsonlite list object
    #' @param OptColumnMappingJson list object.
    fromJSON = function(OptColumnMappingJson) {
      OptColumnMappingObject <- jsonlite::fromJSON(OptColumnMappingJson)
      if (!is.null(OptColumnMappingObject$`identifier`)) {
        self$`identifier` <- OptColumnMappingObject$`identifier`
      }
      if (!is.null(OptColumnMappingObject$`param`)) {
        paramObject <- Parameter$new()
        paramObject$fromJSON(jsonlite::toJSON(OptColumnMappingObject$param, auto_unbox = TRUE, null = "null", na = "null", digits = NA))
        self$`param` <- paramObject
      }
      if (!is.null(OptColumnMappingObject$`value`)) {
        self$`value` <- OptColumnMappingObject$`value`
      }
    },
    #' @description Serialize to JSON string.
    toJSONString = function() {
      jsoncontent <- c(
        if (!is.null(self$`identifier`)) {
        sprintf(
        '"identifier":
          "%s"
                ',
        rmzTabM::safe_unbox(self$`identifier`)
        )},
        if (!is.null(self$`param`)) {
        sprintf(
        '"param":
        %s
        ',
        jsonlite::toJSON(self$`param`$toJSON(), auto_unbox=FALSE, null = "null", na = "null", digits = NA)
        )},
        if (!is.null(self$`value`)) {
        sprintf(
        '"value":
          "%s"
                ',
        rmzTabM::safe_unbox(self$`value`)
        )}
      )
      jsoncontent <- paste(jsoncontent, collapse = ",")
      paste('{', jsoncontent, '}', sep = "")
    },
    #' @description Deserialize from JSON string
    #' @param OptColumnMappingJson JSON string
    fromJSONString = function(OptColumnMappingJson) {
      OptColumnMappingObject <- jsonlite::fromJSON(OptColumnMappingJson)
      self$`identifier` <- OptColumnMappingObject$`identifier`
      self$`param` <- Parameter$new()$fromJSONString(jsonlite::toJSON(OptColumnMappingObject$param, auto_unbox = TRUE, null = "null", na = "null", digits = NA))
      self$`value` <- OptColumnMappingObject$`value`
      self
    },
    #' @description Serialize to string
    toString = function() {
      optStr <- ""
      if (!is.null(self$`identifier`)) {
        if (startsWith(self$`identifier`, "global")) {
          optStr <- paste("opt", self$`identifier`, sep = "_")
          if (!is.null(self$`param`)) {
            optStr <- paste(optStr, "cv", self$`param`$`cv_accession`, gsub(" ", "_", self$`param`$`name`, fixed=TRUE), sep="_")
          }
        } else {
          optStr <- paste(self$`identifier`, sep = "_")
        }
      }
      optStr
    },
    #' @description Deserialize from string
    #' @param OptColumnMappingString The string representation to deserialize
    fromString = function(OptColumnMappingString) {
      # if (rlang::has_name(PublicationDataFrame, "id")) {
      #   self$`id` <- PublicationDataFrame$`id`
      # }
      # if (rlang::has_name(PublicationDataFrame, "name")) {
      #   pubItemsList <- splitList(PublicationDataFrame$`name`)
      #   self$`publicationItems` <- lapply(pubItemsList, function(x){
      #     pubItem <- PublicationItem$new()
      #     pubItem$fromString(x)
      #     pubItem
      #   })
      # }
      warning("fromString not implemented yet!")
      self
    }
  )
)
lifs-tools/rmzTab-m documentation built on Jan. 26, 2023, 4:45 p.m.