+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: Apache-2.0
+
source("./R/util.R")
-#' Arvados SubCollection Object
+#' Subcollection
+#'
+#' Subcollection class represents a folder inside Arvados collection.
+#' It is essentially a composite of arvadosFiles and other subcollections.
+#'
+#' @section Usage:
+#' \preformatted{subcollection = Subcollection$new(name)}
+#'
+#' @section Arguments:
+#' \describe{
+#' \item{name}{Name of the subcollection.}
+#' }
+#'
+#' @section Methods:
+#' \describe{
+#' \item{getName()}{Returns name of the subcollection.}
+#' \item{getRelativePath()}{Returns subcollection path relative to the root.}
+#' \item{add(content)}{Adds ArvadosFile or Subcollection specified by content to the subcollection.}
+#' \item{remove(name)}{Removes ArvadosFile or Subcollection specified by name from the subcollection.}
+#' \item{get(relativePath)}{If relativePath is valid, returns ArvadosFile or Subcollection specified by relativePath, else returns NULL.}
+#' \item{getFileListing()}{Returns subcollections file content as character vector.}
+#' \item{getSizeInBytes()}{Returns subcollections content size in bytes.}
+#' \item{move(newLocation)}{Moves subcollection to a new location inside collection.}
+#' }
+#'
+#' @name Subcollection
+#' @examples
+#' \dontrun{
+#' myFolder <- Subcollection$new("myFolder")
+#' myFile <- ArvadosFile$new("myFile")
#'
-#' Update description
+#' myFolder$add(myFile)
+#' myFolder$get("myFile")
+#' myFolder$remove("myFile")
#'
-#' @export Subcollection
+#' myFolder$move("newLocation/myFolder")
+#' }
+NULL
+
+#' @export
Subcollection <- R6::R6Class(
"Subcollection",
cloneable = FALSE
)
-#' @export print.Subcollection
-print.Subcollection = function(subCollection)
+#' print.Subcollection
+#'
+#' Custom print function for Subcollection class
+#'
+#' @param x Instance of Subcollection class
+#' @param ... Optional arguments.
+#' @export
+print.Subcollection = function(x, ...)
{
collection <- NULL
- relativePath <- subCollection$getRelativePath()
+ relativePath <- x$getRelativePath()
- if(!is.null(subCollection$getCollection()))
+ if(!is.null(x$getCollection()))
{
- collection <- subCollection$getCollection()$uuid
+ collection <- x$getCollection()$uuid
- if(!subCollection$getName() == "")
+ if(!x$getName() == "")
relativePath <- paste0("/", relativePath)
}
cat(paste0("Type: ", "\"", "Arvados Subcollection", "\""), sep = "\n")
- cat(paste0("Name: ", "\"", subCollection$getName(), "\""), sep = "\n")
+ cat(paste0("Name: ", "\"", x$getName(), "\""), sep = "\n")
cat(paste0("Relative path: ", "\"", relativePath, "\""), sep = "\n")
cat(paste0("Collection: ", "\"", collection, "\""), sep = "\n")
}