[Rd] reference classes: question on inheritance

John Chambers jmc at r-project.org
Mon Nov 22 18:50:37 CET 2010


 >>
 >> 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.thyson at ku-eichstaett.de]
>> Gesendet: Montag, 22. November 2010 00:31
>> An: 'r-devel at 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 at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



More information about the R-devel mailing list