[Rd] Reference classes: accessor functions via 'getRefClass(...)$accessors(...)'
Janko Thyson
janko.thyson at ku-eichstaett.de
Wed Nov 17 15:33:24 CET 2010
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]]
More information about the R-devel
mailing list