From jon.clayden at gmail.com  Thu Oct 28 18:12:48 2010
From: jon.clayden at gmail.com (Jon Clayden)
Date: Thu, 28 Oct 2010 17:12:48 +0100
Subject: [Rd] Reference Classes: Generalizing Reference Class Generator
	objects?
In-Reply-To: <4CC98517.3050605@alum.mit.edu>
References: <4CC98517.3050605@alum.mit.edu>
Message-ID: <AANLkTin6WXF-mMy_whb_cYuiKqrYw+Q3yP+D8NbRRpcO@mail.gmail.com>

Sorry - you don't need to assign the value of initFields(). I was
going to do it in two lines but then realised one was enough... :)

TestClass <- setRefClass ("TestClass",
       fields = list (text = "character"),
       methods = list (
               initialize = function (text) {
initFields(text=paste(text,"\n")) },
               print = function ()  { cat(text) } )
)

All the best,
Jon


On 28 October 2010 15:13, Daniel Lee <bearlee at alum.mit.edu> wrote:
> 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?
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



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