Rev 19064 | Rev 20092 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
\name{promptClass}\alias{promptClass}\title{Generate a Shell for Documentation of a Formal Class}\description{Assembles all relevant slot and method information for a class, withminimal markup for Rd processing; no QA facilities at present.}\usage{promptClass(clName, filename, type = "class", keywords = "classes", where)}\arguments{\item{clName}{ character string naming the class to be documented. }\item{filename}{ Usually, the filename on which the documentationshell should be written. By default it is the topic name forthe class documentation, followed by ".Rd". See the examplebelow. The argument can also be any writable\link{connection}.}\item{type}{The documentation type to be declared in the outputfile.}\item{keywords}{The keywords to include in the shell of thedocumentation. The keyword \code{"classes"} should be one ofthem. }\item{where}{ where to look for the definition of the class and ofmethods that use it: by default, anywhere in the current searchlist. } }\details{The class definition is found on the search list. Usingthat definition, information about classes extended and slots isdetermined.In addition, the currently available generics with methods for thisclass are found (using \code{\link{getGenerics}}). Note that thesemethods need not be in the same environment as the class definition; inparticular, this part of the output may depend on which packages arecurrently in the search list.As with other prompt-style functions, the documentation shell iswritten to a file, which will need editing to give information aboutthe \emph{meaning} of the class. The output of \code{promptClass} canonly contain information from the metadata about the formal definitionand how it is used.}\value{The name of the file to which the shell is written (the value is\code{\link{invisible}}).A message is also printed notifyingthe user about the file.}\author{VJ Carey \email{stvjc@channing.harvard.edu} and John Chambers}\references{The web page \url{http://www.omegahat.org/RSMethods/index.html} is theprimary documentation.The functions in this package emulate the facility for classes andmethods described in \emph{Programming with Data} (John M. Chambers,Springer, 1998). See this book for further details and examples.}\seealso{\code{\link{prompt}} for documentation of functions,\code{\link{promptMethods}} for documentation of method definitions.For processing of the edited documentation, either use \code{R CMD\link{Rdconv}}, or include the edited file in the \file{man}subdirectory of a package.}\examples{\testonly{## from setClass## A simple class with two slotssetClass("track",representation(x="numeric", y="numeric"))## A class extending the previous, adding one more slotsetClass("trackCurve",representation("track", smooth = "numeric"))## A class similar to "trackCurve", but with different structure## allowing matrices for the "y" and "smooth" slotssetClass("trackMultiCurve",representation(x="numeric", y="matrix", smooth="matrix"),prototype = list(x=numeric(), y=matrix(0,0,0), smooth= matrix(0,0,0)))setIs("trackMultiCurve", "trackCurve",test = function(obj) {ncol(slot(obj, "y")) == 1},coerce = function(obj) { new("trackCurve", x = slot(obj, "x"),y = as.numeric(slot(obj,"y")), smooth = as.numeric(slot(obj, "smooth")))})## from setMethodsetMethod("plot", "track",function(x, y, ...) plot(slot(x, "y"), y, ...))setMethod("plot", c("trackCurve", "missing"),function(x, y, ...) {plot(as(x, "track"))if(length(slot(x, "smooth") > 0))lines(slot(x, "x"), slot(x, "smooth"))})promptClass("trackMultiCurve", stdout())promptClass("track", stdout())}\dontrun{> promptClass("track")A shell of class documentation has been written to thefile "track-class.Rd".}}\keyword{programming}\keyword{classes}