R/Edges.r

# Altana Atlas API
#
# Altana Atlas for Regulatory Risk and Trade Compliance
#
# OpenAPI spec version: {{ version or \"v0.0.1\" }}
# Contact: engineering@altanatech.com
# Generated by: https://github.com/swagger-api/swagger-codegen.git

#' Edges Class
#'
#' @field num_results 
#' @field page_size 
#' @field page_num 
#' @field edges 
#'
#' @importFrom R6 R6Class
#' @importFrom jsonlite fromJSON toJSON
#' @export
Edges <- R6::R6Class(
  'Edges',
  public = list(
    `num_results` = NULL,
    `page_size` = NULL,
    `page_num` = NULL,
    `edges` = NULL,
    initialize = function(`num_results`, `page_size`, `page_num`, `edges`){
      if (!missing(`num_results`)) {
        stopifnot(is.numeric(`num_results`), length(`num_results`) == 1)
        self$`num_results` <- `num_results`
      }
      if (!missing(`page_size`)) {
        stopifnot(is.numeric(`page_size`), length(`page_size`) == 1)
        self$`page_size` <- `page_size`
      }
      if (!missing(`page_num`)) {
        stopifnot(is.numeric(`page_num`), length(`page_num`) == 1)
        self$`page_num` <- `page_num`
      }
      if (!missing(`edges`)) {
        stopifnot(is.list(`edges`), length(`edges`) != 0)
        lapply(`edges`, function(x) stopifnot(R6::is.R6(x)))
        self$`edges` <- `edges`
      }
    },
    toJSON = function() {
      EdgesObject <- list()
      if (!is.null(self$`num_results`)) {
        EdgesObject[['num_results']] <- self$`num_results`
      }
      if (!is.null(self$`page_size`)) {
        EdgesObject[['page_size']] <- self$`page_size`
      }
      if (!is.null(self$`page_num`)) {
        EdgesObject[['page_num']] <- self$`page_num`
      }
      if (!is.null(self$`edges`)) {
        EdgesObject[['edges']] <- lapply(self$`edges`, function(x) x$toJSON())
      }

      EdgesObject
    },
    fromJSON = function(EdgesJson) {
      EdgesObject <- jsonlite::fromJSON(EdgesJson)
      if (!is.null(EdgesObject$`num_results`)) {
        self$`num_results` <- EdgesObject$`num_results`
      }
      if (!is.null(EdgesObject$`page_size`)) {
        self$`page_size` <- EdgesObject$`page_size`
      }
      if (!is.null(EdgesObject$`page_num`)) {
        self$`page_num` <- EdgesObject$`page_num`
      }
      if (!is.null(EdgesObject$`edges`)) {
        self$`edges` <- lapply(EdgesObject$`edges`, function(x) {
          edgesObject <- Edge$new()
          edgesObject$fromJSON(jsonlite::toJSON(x, auto_unbox = TRUE))
          edgesObject
        })
      }
    },
    toJSONString = function() {
       sprintf(
        '{
           "num_results": %d,
           "page_size": %d,
           "page_num": %d,
           "edges": [%s]
        }',
        self$`num_results`,
        self$`page_size`,
        self$`page_num`,
        lapply(self$`edges`, function(x) paste(x$toJSON(), sep=","))
      )
    },
    fromJSONString = function(EdgesJson) {
      EdgesObject <- jsonlite::fromJSON(EdgesJson)
      self$`num_results` <- EdgesObject$`num_results`
      self$`page_size` <- EdgesObject$`page_size`
      self$`page_num` <- EdgesObject$`page_num`
      self$`edges` <- lapply(EdgesObject$`edges`, function(x) Edge$new()$fromJSON(jsonlite::toJSON(x, auto_unbox = TRUE)))
    }
  )
)
altana-tech/atlas-api-r-sdk documentation built on Dec. 19, 2021, 1:36 a.m.