cstrato <[EMAIL PROTECTED]> writes: > Dear all, > > Maybe, I am doing something wrong, but using R-2.5.0 on my Intel-Mac, I > have problems > using function callNextMethod() in method initialize. > > I am loading the following code as file "testS4.R":
I don't think this is the code in the same state as that which you ran the examples. Did you add/remove some comment lines perhaps? After copy/pasting the code you posted, I get: > tmp<-new("derivedClass") [1] "---initialize:derivedClass---" [1] "mytitle = MyTitle" > tmp<-new("derivedClass",myname="testname",mytitle="testitle") [1] "---initialize:derivedClass---" [1] "mytitle = MyTitle" > setValidity("baseClass", > function(object) { > print("---setValidity:baseClass---") > strg <- [EMAIL PROTECTED]; > if (!(is(strg, "character") && nchar(strg) > 0)) { > warning(paste(sQuote("myname"), "is missing")); > }#if > print(paste("myname = ",[EMAIL PROTECTED])) > strg <- [EMAIL PROTECTED]; > if (!(is(strg, "character") && file.exists(strg))) { > warning(paste(sQuote("mydir"), "is not a system directory")); > }#if > if (substr(strg, nchar(strg), nchar(strg)) == "/") { > [EMAIL PROTECTED] <- substr(strg, 0, nchar(strg)-1); > }#if > print(paste("mydir = ",[EMAIL PROTECTED])) > } > )#setValidity Your validity function isn't valid :-P It should either return TRUE or return a character vector describing what isn't valid about the object. Don't call warning() or print(). Also, you don't need those ';' And finally, you are operating on a _copy_ in the validity method (just like everywhere else) and so this > if (substr(strg, nchar(strg), nchar(strg)) == "/") { > [EMAIL PROTECTED] <- substr(strg, 0, nchar(strg)-1); > }#if will not have any effect on the instance passed in. It is an odd thing to do in a validity method. + seth -- Seth Falcon | Computational Biology | Fred Hutchinson Cancer Research Center http://bioconductor.org ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel