Dear Developers,
In current implementation of validity method, objects are first coerced to
superclass (slots are striped). Thus, it is not possible to write validity
method which would perform some checks on children slots.
Say, I want to check if number of slots in a class is equal to "n":
setClass("A", representation(a="numeric", n="integer"),
prototype=list(a=12, n=1L),
validity=function(object){
if(length(slotNames(object))!=obj...@n+1) paste("Number of
slots must be ", obj...@n)
else TRUE
})
setClass("B", representation(b="numeric"), contains="A",
prototype=list(a=12, b=14, n=2L))
new("B", a=11, b=33)
Error in validObject(.Object) :
invalid class "B" object: Number of slots must be 2
Error, because an object of class "A" is passed to validObject with one
slot "b" removed and n=2.
Is were a work around for this, or I am just doomed to write the same
validity method for each children class?
Many thanks,
Vitalie.
--
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel