[Rd] Reference Classes: Generalizing Reference Class Generator objects?

Daniel Lee bearlee at alum.mit.edu
Thu Oct 28 16:13:43 CEST 2010


Is it possible to override the $new(...) in the reference class 
generator? I have tried adding a "new" method to the methods of the 
class, but that is obviously not correct. I have also tried adding it to 
the class generator, but the class generator still uses the default 
constructor.

As a simple example, this is the current interface:
TestClass <- setRefClass ("TestClass",
         fields = list (text = "character"),
         methods = list (
                 print = function ()  {cat(text)})
)
test <- TestClass$new (text="Hello World")
test$print()

I would like to override $new(...) to be something like (add a "\n" to 
the end of the input, no need to specify input fields):
TestClass$methods (new = function (text) {
             text <- paste (text, "\n")
             methods:::new (def, text=text)
         })

The constructor would then be:
test <- TestClass$new ("Hello World")

This is a subtle, but useful change. I have also tried adding to 
TestClass a method $newInstance(text), but that was not successful. If 
this is not possible, could we consider augmenting the Reference Class 
interface to include constructors?



More information about the R-devel mailing list