R/User.R

Defines functions user

#' An S4 class to represent an user
#'
#' @slot name The name of the user
#' @slot password The password of the user
setClass (
  Class = "User",
  representation = representation(
    name = "character", 
    password = "character"
  ),
  validity = function(object){
    cat("~~~ User: inspector ~~~ \n")
    
    name <- object@name
    password <- object@password
    
    if(length(object@password) != length(object@name) &&  length(object@password) != 1){
      stop ("[User: validation] Only one user and one password allowed")
    }else{}
    return(TRUE)
  }
)

#*******************************************************
#CONSTRUCTOR

setMethod (
  f="initialize",
  signature="User",
  definition=function(.Object,name,password){
    #cat ("~~~~~ User: initializator ~~~~~ \n")
    if(!missing(name)){
      if(!missing(password)){
        .Object@name <- name
        .Object@password <- password
        validObject(.Object)# call of the inspector
      }else{
        .Object@password <- character(0)
      }
    }else{
      .Object@name <- character(0)
    }
    return(.Object)
  }
)


#CONSTRUCTOR (USER FRIENDLY)
user <- function(name,password){
  cat ("~~~~~ User: constructor ~~~~~ \n")
  new (Class="User", name = name, password = password)
}



#*******************************************************
#ACCESSORS

setGeneric("getName",function(object){standardGeneric ("getName")})
setMethod("getName","User",
          function(object){
            return(object@name)
          }
)


setGeneric("getPassword",function(object){standardGeneric ("getPassword")})
setMethod("getPassword","User",
          function(object){
            return(object@password)
          }
)
jimjonesbr/sdd documentation built on May 19, 2019, 10:34 a.m.