Rev 39016 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
\name{MethodsList-class}\alias{MethodsList-class}\alias{body<-,MethodDefinition-method}\docType{class}\title{Class MethodsList, Representation of Methods for a Generic Function }\description{ Objects from this class are generated and revised by thedefinition of methods for a generic function.}\section{Slots}{\describe{\item{\code{argument}:}{Object of class \code{"name"}. The name of theargument being used for dispatch at this level. }\item{\code{methods}:}{A named list of the methods (and method lists)defined \emph{explicitly} for this argument.The names are the names of classes, and the correspondingelement defines the method or methods to be used if the correspondingargument has that class. See the details below.}\item{\code{allMethods}:}{A named list, containsall the directly defined methods from the \code{methods} slot, plusany inherited methods. Ignored when methods tables are used for dispatch (see \link{Methods} }}}\details{Suppose a function \code{f} hasformal arguments \code{x} and \code{y}. The methods list object forthat function has the object \code{as.name("x")} as its\code{argument} slot. An element of the methods named \code{"track"}is selected if the actual argument corresponding to \code{x} is anobject of class \code{"track"}. If there is such an element, it cangenerally be either a function or another methods list object.In the first case, the function defines the method to use for any callin which \code{x} is of class \code{"track"}. In the second case, thenew methods list object defines the available methods depending onthe remaining formal arguments, in this example, \code{y}.Each method corresponds conceptually to a \emph{signature};that is a named list of classes, with names corresponding to some orall of the formal arguments. In the previous example, if selectingclass \code{"track"} for \code{x}, finding that the selection wasanother methods list and then selecting class \code{"numeric"} for\code{y} would produce a method associated with the signature\code{x = "track", y = "numeric"}.You can see the methodsarranged by signature by calling the function\code{\link{showMethods}},A methods list can be converted into an ordinary list with the methods arranged thisway (in two different forms) by calling the functions\code{\link{listFromMlist}} and \code{\link{linearizeMlist}}.}\section{Extends}{Class \code{"OptionalMethods"}, directly.}\keyword{classes}\keyword{methods}