From janko.thyson at ku-eichstaett.de  Wed Nov 17 15:33:24 2010
From: janko.thyson at ku-eichstaett.de (Janko Thyson)
Date: Wed, 17 Nov 2010 15:33:24 +0100
Subject: [Rd] Reference classes: accessor functions via
	'getRefClass(...)$accessors(...)'
In-Reply-To: <cpnoc9oi05v.fsf@gmail.com>
References: <47297.2810421654$1289995693@news.gmane.org>
	<cpnoc9oi05v.fsf@gmail.com>
Message-ID: <006101cb8664$63e673d0$2bb35b70$@thyson@ku-eichstaett.de>

Thanks a lot for the comments! I'll give the serveral alternatives a try to
see if it gets me what I want.

Cheers, 
Janko

> -----Urspr?ngliche Nachricht-----
> Von: Vitalie S. [mailto:spinuvit.list at gmail.com]
> Gesendet: Mittwoch, 17. November 2010 13:51
> An: Janko Thyson
> Cc: 'r-devel at r-project. org'
> Betreff: Re: Reference classes: accessor functions via
> 'getRefClass(...)$accessors(...)'
> 
> "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(...)'
Janko Thyson