Skip to content
Prev 3045 / 21312 Next

[Bioc-devel] BiocGenerics / NAMESPACE question

2011/12/5 Herv? Pag?s <hpages at fhcrc.org>:
I find it completely natural that exportMethod will also export the
generic since there cannot really be a method without a generic.  That
export also exports all methods is perhaps not completely obvious but
the only possible usecase would be if you want to hide some methods,
which I cannot really imagine.

R-devel exts says

"Where a generic has been created in the package solely to add S4
methods to it, it can be declared via either or both of exports or
exportMethods, but the latter seems clearer (and is used in the stats4
example above). On the other hand, where a generic is created in a
package without setting any methods for it (such as AIC in stats4),
exports must be used."

and also for imports

"Note that importMethodsFrom will also import any generics defined in
the namespace on those methods."

Based on this it seems like BiocGenerics is absolutely doing the right
thing by using export() for generics without methods, but that
packages in general should use exportMethods and importMethodsFrom in
order to export/import methods and their generics.  Guess that we need
to use importFrom to catch the generics from BiocGenerics.

Thanks for the help and for pointing out the discussion in R-exts.
Kasper