>>
>> What am I doing wrong here?

Not using a recent enough version of R probably (and not telling us what version you are using).

The warning (not an error) should not appear in current r-devel or 2.12-patched. In other words, works fine for me.

John

On 11/21/10 3:40 PM, Janko Thyson wrote:
Hmm, interesting: it's the virtual class that causes the trouble. If a
virtual class is a ref class, everything works fine. If it's a standard S4
class, it results in the error below.

Regards,
Janko

-----Ursprüngliche Nachricht-----
Von: Janko Thyson [mailto:janko.thy...@ku-eichstaett.de]
Gesendet: Montag, 22. November 2010 00:31
An: 'r-de...@r-project. org'
Betreff: reference classes: question on inheritance

Dear list,

I have a reference class which should act as a “generic” superclass for
other classes. I’ve read the respective section at ?setRefClass and put
the name of the superclass to the ‘contains’ argument of an example
subclass (see class defs below). Classnames are set in a way that
shouldn’t result in collation issues (virtual def sourced before
superclass def sourced before subclass). Yet, this  results in the
following error:

Warnmeldung:
unable to find a consistent ordering of superclasses for class
"Shabubu": order chosen is inconsistent with the superclasses of
"JObject"

###### CLASS DEFS #####
setClass("JObjectVirtual")
setRefClass(
        Class="JObject",
        fields=list(
                # GENERIC FIELDS (DON'T CHANGE !!!)
                .BUFFER="environment",
                .GENESIS="environment",
                .HISTORY="environment",
                .IMAGES="environment",
                .LOGS="environment",
                .OPTS="environment",
                .PLUGINS="environment",
                .TMP="environment",
                .UID="character",
                DATA="data.frame"
                # /
        ),
        contains=c("JObjectVirtual"),
        methods=list(
                ...
        )
)
setRefClass(
        Class="Shabubu",
        fields=list(
                # CUSTOM FIELDS (ADAPT TO YOUR NEEDS)
                a="numeric",
                b="character",
                c="logical",
                d="data.frame",
                e="matrix",
                f="list",
                derived.field="function"
                # /
        ),
        contains=c("JObject")
)

Thanks,
Janko

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to