#' Class GMQLDataset
#' 
#' Abstract class representing GMQL dataset
#'
#' @slot value value associated to GMQL dataset
#' @name GMQLDataset-class
#' @rdname GMQLDataset-class
#' @noRd
#' @return instance of GMQL dataset
#' 
setClass("GMQLDataset", representation(value = "character"))

#' GMQLDataset alloc Function
#' 
#' Alloc GMQLDataset object with its value
#' 
#' @name GMQLDataset
#' @importFrom methods new
#' 
#' @param value value associated to GMQL dataset
#' @rdname GMQLDataset-class
#' @noRd
GMQLDataset <- function(value) {
  dataset <- new("GMQLDataset",value = value)
  return(dataset)
}

setMethod("show", "GMQLDataset", function(object) {
  cat("GMQL Dataset \n")
  cat(" value :",paste(object@value))
})

setGeneric("value", function(.dataset) standardGeneric("value"))

setMethod("value", "GMQLDataset", function(.dataset) .dataset@value)