Re: [Rd] prototype in setClass.

From: John Chambers <jmc_at_research.bell-labs.com>
Date: Thu 16 Sep 2004 - 01:13:47 EST

It works better if you give setClass the right arguments.

In your second call, you omitted the representation= argument, so you need to name the prototype argument:

setClass("AtomList"

         ,contains="List"
         ,prototype =
prototype(content="Atom")                                ## would like
to specify this
         )

With this change:

R> new("AtomList")
An object of class "AtomList"
list()
Slot "uniq":
[1] FALSE Slot "content":
[1] "Atom"

(We can probably do some bullet-proofing, since the object returned from prototype() has a specific class, but that may have to wait until 2.0.1.)

Wolski wrote:
>
> Hi!
>
> To specify a prototype in the setClass declaration is a great feature.
> But prototype seems no to work for slots of the "super" class.
> eg. The following code is declaring first the super class "List". This class has a slot "content".
> The class "AtomList" inherits from it and I would like to set content="Atom" by prototype(content="Atom").
> But after new("AtomList") is called the slot content is empty as you can see running the code below.
>
> setClass("List"
> ,representation(
> uniq="logical"
> ,content="character" ##### would like to set this when declaring the inheriting class.
> ,names="character")
> ,contains="list"
> ,prototype(uniq=FALSE)
> )
>
> setClass("AtomList"
> ,contains="List"
> ,prototype(content="Atom") ## would like to specify this
> )
>
> new("AtomList")
>
> An object of class "AtomList"
> list()
> Slot "uniq":
> [1] FALSE
>
> Slot "content":
> character(0) #######<-still not specified even if provided in prototype.
>
> Slot "names":
> character(0)
>
> Version:
>
> R : Copyright 2004, The R Foundation for Statistical Computing
> Version 2.0.0 alpha (2004-09-14), ISBN 3-900051-07-0
> or
> R1.9.1 patched.
>
> /E
>
> ______________________________________________
> R-devel@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

-- 
John M. Chambers                  jmc@bell-labs.com
Bell Labs, Lucent Technologies    office: (908)582-2681
700 Mountain Avenue, Room 2C-282  fax:    (908)582-3340
Murray Hill, NJ  07974            web: http://www.cs.bell-labs.com/~jmc

______________________________________________
R-devel@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Received on Thu Sep 16 01:18:31 2004

This archive was generated by hypermail 2.1.8 : Wed 03 Nov 2004 - 22:45:15 EST