From spinuvit.list at gmail.com  Wed Nov 17 13:50:52 2010
From: spinuvit.list at gmail.com (Vitalie S.)
Date: Wed, 17 Nov 2010 13:50:52 +0100
Subject: [Rd] Reference classes: accessor functions via
	'getRefClass(...)$accessors(...)'
In-Reply-To: <47297.2810421654$1289995693@news.gmane.org> (Janko Thyson's
	message of "Wed, 17 Nov 2010 13:07:18 +0100")
References: <47297.2810421654$1289995693@news.gmane.org>
Message-ID: <cpnoc9oi05v.fsf@gmail.com>

"Janko Thyson" <janko.thyson at ku-eichstaett.de> writes:

> Hi there,
>
> I'd like to choose between an "static" and "dynamic" access of a reference
> class field, say 'a'.
>
> myObj <- getRefClass("Blabla")$new()
>
> Static:                   myObj$a
>
> Dynamic:             myObj$a.get() where the function retrieves the data
> from a database (or some other location), stores it to a buffer and
> optionally updates the static field value 'a'.
>
> I've set up such a method 'a.get()' where I can actually decide between
> static and dynamic runmode (so the method also wraps the call 'myObj$a' for
> the static runmode).
>
> Now I saw that setting up such accessor methods (get/set) is already done
> for me if I use 'getRefClass("Blabla")$accessors(.)'. I just don't
> understand what exactly I have to do there, because this results in an
> error: 'getRefClass("Blabla")$accessors("a")'
>
> Can anyone point me to the correct use of 'getRefClass(.)$accessors(.)'?

It works for me:

X <- setRefClass("XXX", fields = list(a = "character"))
X$accessors("a")
X
# ...
# Class Methods:  
#    "callSuper", "export", "getA", "import", "initFields", "setA"
# ...

accessors() convenience method creates setA and getA functions:

x <- X$new()
x$getA
#Class method definition for method getA()
#function () 
#a
#<environment: 02a198c0>

HTH,
Vitalie.

> 
>
> Thanks a lot,
>
> Janko
>
> 	[[alternative HTML version deleted]]



[Rd] Reference classes: accessor functions via 'getRefClass(...)$accessors(...)'
Vitalie S.