R/Metadata.r

# sunagriAPI
#
# An instance of OpenSILEX WebService
#
# OpenAPI spec version: 3.3.0
# 
# Generated by: https://github.com/swagger-api/swagger-codegen.git


#' Metadata Class
#'
#' @field pagination 
#' @field status 
#' @field datafiles 
#'
#' @importFrom R6 R6Class
#' @importFrom jsonlite fromJSON toJSON
#' @export
Metadata <- R6::R6Class(
  'Metadata',
  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() {
      MetadataObject <- list()
      if (!is.null(self$`pagination`)) {
        MetadataObject[['pagination']] <- self$`pagination`$toJSON()
      }
      if (!is.null(self$`status`)) {
        MetadataObject[['status']] <- lapply(self$`status`, function(x) x$toJSON())
      }
      if (!is.null(self$`datafiles`)) {
        MetadataObject[['datafiles']] <- self$`datafiles`
      }

      MetadataObject
    },
    fromJSON = function(MetadataJson) {
      MetadataObject <- jsonlite::fromJSON(MetadataJson)
      if (!is.null(MetadataObject$`pagination`)) {
        paginationObject <- Pagination$new()
        paginationObject$fromJSON(jsonlite::toJSON(MetadataObject$pagination, auto_unbox = TRUE, null = "null"))
        self$`pagination` <- paginationObject
      }
      if (!is.null(MetadataObject$`status`)) {
        self$`status` <- lapply(MetadataObject$`status`, function(x) {
          statusObject <- Status$new()
          statusObject$fromJSON(jsonlite::toJSON(x, auto_unbox = TRUE, null = "null"))
          statusObject
        })
      }
      if (!is.null(MetadataObject$`datafiles`)) {
        self$`datafiles` <- MetadataObject$`datafiles`
      }
    },
    fromJSONObject = function(MetadataObject) {
      if (!is.null(MetadataObject$`pagination`)) {
        paginationObject <- Pagination$new()
        paginationObject$fromJSON(jsonlite::toJSON(MetadataObject$pagination, auto_unbox = TRUE, null = "null"))
        self$`pagination` <- paginationObject
      }
      if (!is.null(MetadataObject$`status`)) {
        self$`status` <- lapply(MetadataObject$`status`, function(x) {
          statusObject <- Status$new()
          statusObject$fromJSON(jsonlite::toJSON(x, auto_unbox = TRUE, null = "null"))
          statusObject
        })
      }
      if (!is.null(MetadataObject$`datafiles`)) {
        self$`datafiles` <- MetadataObject$`datafiles`
      }
    },
    toJSONString = function() {
      statusList = paste(lapply(self$`status`, function(x) x$toJSONString()),collapse = ",")
       sprintf(
        '{
           "pagination": %s,
           "status": [%s],
           "datafiles": [%s]
        }',
        self$`pagination`$toJSON(),
        statusList,
        lapply(self$`datafiles`, function(x) paste(paste0('"', x, '"'), sep=","))
      )
    },
    fromJSONString = function(MetadataJson) {
      MetadataObject <- jsonlite::fromJSON(MetadataJson)
      PaginationObject <- Pagination$new()
      self$`pagination` <- PaginationObject$fromJSON(jsonlite::toJSON(MetadataObject$pagination, auto_unbox = TRUE))
      self$`status` <- lapply(MetadataObject$`status`, function(x) Status$new()$fromJSON(jsonlite::toJSON(x, auto_unbox = TRUE)))
      self$`datafiles` <- MetadataObject$`datafiles`
    }
  )
)
OpenSILEX/phis-ws-client-r-tool documentation built on Sept. 10, 2020, 8:42 a.m.