R/MetadataDTO.r

# OpenSilex API
#
# No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
#
# OpenAPI spec version: 1.0.0-rc+2
# 
# Generated by: https://github.com/swagger-api/swagger-codegen.git


#' MetadataDTO Class
#'
#' @field pagination 
#' @field status 
#' @field datafiles 
#'
#' @importFrom R6 R6Class
#' @importFrom jsonlite fromJSON toJSON
#' @export
MetadataDTO <- R6::R6Class(
  'MetadataDTO',
  public = list(
    `pagination` = NULL,
    `status` = NULL,
    `datafiles` = NULL,
    initialize = function(`pagination`, `status`, `datafiles`){
      if (!missing(`pagination`)) {
        stopifnot(R6::is.R6(`pagination`))
        self$`pagination` <- `pagination`
      }
      if (!missing(`status`)) {
        stopifnot(is.list(`status`), length(`status`) != 0)
        lapply(`status`, function(x) stopifnot(R6::is.R6(x)))
        self$`status` <- `status`
      }
      if (!missing(`datafiles`)) {
        stopifnot(is.list(`datafiles`), length(`datafiles`) != 0)
        lapply(`datafiles`, function(x) stopifnot(is.character(x)))
        self$`datafiles` <- `datafiles`
      }
    },
    toJSON = function() {
      MetadataDTOObject <- list()
      if (!is.null(self$`pagination`)) {
        MetadataDTOObject[['pagination']] <- self$`pagination`$toJSON()
      }
      if (!is.null(self$`status`)) {
        MetadataDTOObject[['status']] <- lapply(self$`status`, function(x) x$toJSON())
      }
      if (!is.null(self$`datafiles`)) {
        MetadataDTOObject[['datafiles']] <- self$`datafiles`
      }

      MetadataDTOObject
    },
    fromJSON = function(MetadataDTOJson) {
      MetadataDTOObject <- jsonlite::fromJSON(MetadataDTOJson)
      if (!is.null(MetadataDTOObject$`pagination`)) {
        paginationObject <- PaginationDTO$new()
        paginationObject$fromJSON(jsonlite::toJSON(MetadataDTOObject$pagination, auto_unbox = TRUE, null = "null"))
        self$`pagination` <- paginationObject
      }
      if (!is.null(MetadataDTOObject$`status`)) {
        self$`status` <- lapply(MetadataDTOObject$`status`, function(x) {
          statusObject <- StatusDTO$new()
          statusObject$fromJSON(jsonlite::toJSON(x, auto_unbox = TRUE, null = "null"))
          statusObject
        })
      }
      if (!is.null(MetadataDTOObject$`datafiles`)) {
        self$`datafiles` <- MetadataDTOObject$`datafiles`
      }
    },
    fromJSONObject = function(MetadataDTOObject) {
      if (!is.null(MetadataDTOObject$`pagination`)) {
        paginationObject <- PaginationDTO$new()
        paginationObject$fromJSON(jsonlite::toJSON(MetadataDTOObject$pagination, auto_unbox = TRUE, null = "null"))
        self$`pagination` <- paginationObject
      }
      if (!is.null(MetadataDTOObject$`status`)) {
        self$`status` <- lapply(MetadataDTOObject$`status`, function(x) {
          statusObject <- StatusDTO$new()
          statusObject$fromJSON(jsonlite::toJSON(x, auto_unbox = TRUE, null = "null"))
          statusObject
        })
      }
      if (!is.null(MetadataDTOObject$`datafiles`)) {
        self$`datafiles` <- MetadataDTOObject$`datafiles`
      }
    },
    toJSONString = function() {
      statusList = paste(lapply(self$`status`, function(x) x$toJSONString()),collapse = ",")
       sprintf(
        '{
           "pagination": %s,
           "status": [%s],
           "datafiles": [%s]
        }',
        jsonlite::toJSON(self$`pagination`$toJSON(),auto_unbox=TRUE, null = "null"),
        statusList,
        ifelse(is.null(self$`datafiles`) || length(self$`datafiles`) == 0, "" ,lapply(self$`datafiles`, function(x) paste(paste0('"', x, '"'), sep=",")))
      )
    },
    fromJSONString = function(MetadataDTOJson) {
      MetadataDTOObject <- jsonlite::fromJSON(MetadataDTOJson)
      PaginationDTOObject <- PaginationDTO$new()
      self$`pagination` <- PaginationDTOObject$fromJSON(jsonlite::toJSON(MetadataDTOObject$pagination, auto_unbox = TRUE))
      self$`status` <- lapply(MetadataDTOObject$`status`, function(x) StatusDTO$new()$fromJSON(jsonlite::toJSON(x, auto_unbox = TRUE)))
      self$`datafiles` <- MetadataDTOObject$`datafiles`
    }
  )
)
OpenSILEX/opensilexClientToolsR documentation built on Jan. 28, 2022, 5:03 a.m.