#' 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)
}
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.