[Rd] Problem using callNextMethod() in S4

Seth Falcon sfalcon at fhcrc.org
Sun Mar 4 18:23:06 CET 2007


cstrato <cstrato at aon.at> 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 <- object at myname;
>       if (!(is(strg, "character") && nchar(strg) > 0)) {
>          warning(paste(sQuote("myname"), "is missing"));
>       }#if
> print(paste("myname = ",object at myname))
>       strg <- object at mydir;
>       if (!(is(strg, "character") && file.exists(strg))) {
>          warning(paste(sQuote("mydir"), "is not a system directory"));
>       }#if
>       if (substr(strg, nchar(strg), nchar(strg)) == "/") {
>          object at mydir <- substr(strg, 0, nchar(strg)-1);
>       }#if
> print(paste("mydir = ",object at mydir))
>    }
> )#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)) == "/") {
>          object at mydir <- 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



More information about the R-devel mailing list