From ross at biostat.ucsf.edu  Wed Nov 25 01:34:25 2009
From: ross at biostat.ucsf.edu (Ross Boylan)
Date: Tue, 24 Nov 2009 16:34:25 -0800
Subject: [Rd] group generics
Message-ID: <1259109265.8792.22.camel@markov.biostat.ucsf.edu>

I have classes A and B, where B contains A.  In the implementation of
the group generic for B I would like to use the corresponding group
generic for A.  Is there a way to do that?

I would also appreciate any comments if what I'm trying to do seems like
the wrong approach.

Here's a stripped down example:
setClass("A",
         representation=representation(xa="numeric")
         )

setMethod("Arith", signature(e1="numeric", e2="A"), function(e1, e2) {
  new("A", ax=e1*e2 at xa)
}
          )

setClass("B",
         representation=representation(xb="numeric"),
         contains=c("A")
         )

setMethod("Arith", signature(e1="numeric", e2="B"), function(e1, e2) {
	# the next line does not work right
  v <- selectMethod("callGeneric", signature=c("numeric", "A"))(e1, e2)
  print(v)
  new("B", v, xb=e1*e2 at xb)
}
)


Results:
> t1 <- new("B", new("A", xa=4), xb=2)
> t1
An object of class ?B?
Slot "xb":
[1] 2

Slot "xa":
[1] 4

> 3*t1
Error in getGeneric(f, !optional) : 
  no generic function found for "callGeneric"

Thanks.
Ross Boylan



[Rd] group generics
Ross Boylan