setClass("defaultTestObjectProto", 
         representation(deviance = "numeric", df = "numeric", p = "numeric"))
"newDefaultTestObject"<-
  function(name)
  {
    df <- round(runif(1, 1, 25))
    message("Just generating a random test!!!!!")
    deviance <- rchisq(1, df)
    p <- 1 - pchisq(deviance, df)
    result <- new("defaultTestObjectProto",
                   df = df, deviance = deviance, p = p)
    return(result)
  }
if (!isGeneric("label") && !isGeneric("label", where = 2)) {
  if (is.function("label"))
    fun <- label
  else
    fun <- function(object) standardGeneric("label")
  setGeneric("label", fun)
}
setMethod("label", "defaultTestObjectProto",
          function(object) format(object@p, digits = 4))
if (!isGeneric("width") && !isGeneric("width", where = 2)) {
  if (is.function("width"))
    fun <- width
  else
    fun <- function(object) standardGeneric("width")
  setGeneric("width", fun)
}
setMethod("width", "defaultTestObjectProto",
          function(object) round(2 + 5 * (1 - object@p)))
newDefaultTestObject("TestObject")Run the code above in your browser using DataLab