Rev 39312 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
\name{showMethods}\alias{showMethods}\title{Show all the methods for the specified function(s)}\description{Show a summary of the methods for one or more generic functions,possibly restricted to those involving specified classes.}\usage{showMethods(f = character(), where = topenv(parent.frame()),classes = NULL, includeDefs = FALSE, inherited = TRUE,showEmpty, printTo = stdout())}\arguments{\item{f}{one or more function names. If omitted, all functionswill be shown that match the other arguments. }\item{where}{Used only when \code{f} is missing, or length 0, todetermine which generic functions to examine. If \code{where} issupplied, only the generic functions returned by\code{getGenerics(where)} are eligible for printing. If\code{where} is also missing, all the cached generic functions areconsidered.}\item{classes}{ If argument \code{classes} is supplied, it is a vectorof class names that restricts the displayed results to those methodswhose signatures include one or more of those classes. }\item{includeDefs}{ If \code{includeDefs} is \code{TRUE}, include thedefinitions of the individual methods in the printout. }\item{inherited}{ If \code{inherits} is \code{TRUE}, then methods thathave been found by inheritance, so far in the session, will beincluded and marked as inherited. Note that an inherited methodwill not usually appear until it has been used in this session.See \code{\link{selectMethod}} if you want to know what method isdispatched for particular classes of arguments.}\item{showEmpty}{logical indicating whether methods with no definedmethods matching the other criteria should be shown at all. Bydefault, \code{TRUE} if and only if argument \code{f} is notmissing.}\item{printTo}{The connection on which the printed information will bewritten; by default, standard output. If \code{printTo} is\code{FALSE}, the output will be collected as a character vector andreturned as the value of the call to \code{showMethod}. See\code{\link{show}}.}}\details{The name and package of the generic are followed by the list ofsignatures for which methods are currently defined, according to thecriteria determined by the various arguments. Note that the packagerefers to the source of the generic function. Individual methodsfor that generic can come from other packages as well.}\value{If \code{printTo} is \code{FALSE}, the character vector that wouldhave been printed is returned; otherwise the value is the connectionor filename, via \code{\link{invisible}}.}\references{The R package \pkg{methods} implements, with a few exceptions, theprogramming interface for classes and methods in the book\emph{Programming with Data} (John M. Chambers, Springer, 1998), inparticular sections 1.6, 2.7, 2.8, and chapters 7 and 8.While the programming interface for the \pkg{methods} package followsthe reference, the R software is an original implementation, sodetails in the reference that reflect the S4 implementation may appeardifferently in R. Also, there are extensions to the programminginterface developed more recently than the reference. See\code{\link{Methods}} and references from there.}\seealso{\code{\link{setMethod}}, and \code{\link{GenericFunctions}}for other tools involving methods;\code{\link{selectMethod}} will show you the method dispatched for aparticular function and signature of classes for the arguments.}\examples{\dontshow{setClass("track",representation(x="numeric", y="numeric"))## First, with only one object as argument:setMethod("plot", signature(x="track", y="missing"),function(x, y, ...) plot(slot(x, "x"), slot(x, "y"), ...))## Second, plot the data from the track on the y-axis against anything## as the x data.setMethod("plot", signature(y = "track"),function(x, y, ...) plot(x, slot(y, "y"), ...))setMethod("plot", "track",function(x, y, ...) plot(slot(x, "y"), y, ...))}## Assuming the methods for plot## are set up as in the example of help(setMethod),## print (without definitions) the methods that involve class "track":showMethods("plot", classes = "track")\dontrun{Function "plot":x = ANY, y = trackx = track, y = missingx = track, y = ANY}%% FIXME: This should be an example of showing methods from a loaded,%% but not attached namespace. Except it doesn't worknot.there <- !any("package:stats4" == search())if(not.there) library(stats4)showMethods(class = "mle")if(not.there) detach("package:stats4")}\keyword{methods}