My understanding is of your questions is below: Matthias Kohl wrote: > Dear R devels, > > let's say I have three packages "pkg1", "pkg2" and "pkg3" which all > contain new S4 classes and methods. Where "pkg3" depends on "pkg2" and > "pkg2" depends on "pkg1". Moreover, all three packages have namespaces. > > 1) I use ".onLoad <- function(lib, pkg) require(methods)". Do I also > have to import the namespace of "methods" package?
No. > > 2) If I use import("pkg1") in the namespace of "pkg2", does this also > (correctly) import the S4 classes and methods of "pkg1"? Or do I > explicitly have to use importClassesFrom resp. importMethodsFrom? Importing an entire package namespace will import all of the exported classes/methods from "pkg1". > > 3) If I import the Namespace of "pkg2" in "pkg3", where the namespace of > "pkg2" has import("pkg1") (or maybe importClassesFrom, > importMethodsFrom) and I also want to use S4 classes and methods of > "pkg1" in "pkg3". Is it sufficient to have import("pkg2") in the > Namespace of "pkg3" or do I need import("pkg1") and import("pkg2")? I believe you need to import each separately since the S4 classes/methods from "pkg1" will not be available to you simple because you imported "pgk2" (i.e. I don't think the chain rule applies here). > > Many thanks for your help and advice > Matthias > -- Roger D. Peng | http://www.biostat.jhsph.edu/~rpeng/ ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel