Hi all,
I've constructed the following function to test whether or not an
object was created from a reference class:
isRefClassObject <- function(x) isS4(x) &&
is.environment(attr(x,'.xData')) &&
exists('.refClassDef',attr(x,'.xData'))
but I'm unsure if it's a complete test or if there's a better way to
test. Regardless, It would be nice to have such a function in the
methods package.
I have a case where I'd like to ensure that an object is constructed
from a reference class AND that it implements a certain method:
if (isRefClassObject(x) && 'run' %in% getRefClass(x)$methods())
x$run()
Thanks,
Jeff
--
http://biostat.mc.vanderbilt.edu/JeffreyHorner
There is a virtual class "refClass" that all reference classes
subclass,
so is(x, "refClass") is the natural test, as in:
> foo <- setRefClass("foo", fields = "bar")
> x <- foo$new()
> is(x, "refClass")
[1] TRUE
On 3/10/11 7:40 AM, Jeffrey Horner wrote:> Hi all,
>
> I've constructed the following function to test whether or not an
> object was created from a reference class:
>
> isRefClassObject<- function(x) isS4(x)&&
> is.environment(attr(x,'.xData'))&&
> exists('.refClassDef',attr(x,'.xData'))
>
> but I'm unsure if it's a complete test or if there's a better
way to
> test. Regardless, It would be nice to have such a function in the
> methods package.
>
> I have a case where I'd like to ensure that an object is constructed
> from a reference class AND that it implements a certain method:
>
> if (isRefClassObject(x)&& 'run' %in%
getRefClass(x)$methods())
> x$run()
>
> Thanks,
>
> Jeff
Possibly Parallel Threads
- Reference Classes: shortcut like 'isS4' for Ref Classes?
- Reference classes and memory consumption
- Reference Classes: removing methods -> implications for objects/instances of that class
- Reference classes: accessor functions via 'getRefClass(...)$accessors(...)'
- r: functions