Hi,

I'm using Version 1.9.0 (2004-04-12) on Windows NT/98/2000 and found the following difference between using setClass(..., valdity = ), respectively using setValidity() afterwards:

setValidity() changes the "Extends"-part of a derived class, is this intended or a bug or am I missing something?

##########################################
## Example code
##########################################
setClass("Class1", representation("name" = "character"))

if(!isGeneric("name")) setGeneric("name", function(object) standardGeneric("name"))
setMethod("name", "Class1", function(object) [EMAIL PROTECTED])


setClass("Class2", representation("Class1"))
setClass("Class3", representation("Class2"))

getClass("Class3") # as I expected

#Slots:
# #Name: name
#Class: character
#
#Extends:
#Class "Class2", directly
#Class "Class1", by class "Class2"



validClass3 <- function(object){TRUE} setValidity("Class3", validClass3)

#Slots:
# #Name: name
#Class: character
#
#Extends: "Class2" # has been changed???


getClass("Class3") # why does setValidity change "Extends"?
# am I missing something?
# This doesn't happen if I use
# setClass(..., validity = )
# It, of course, also works if I explicitly use
# setClass("Class3", contains = c("Class2", "Class1")


C32 <- new("Class3")
name(C32) # generates an error?!

#Error in name(C32) : No direct or inherited method for function "name" for this call

is(C32, "Class1") # however
#TRUE

______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to