\name{makeClassRepresentation}
\alias{makeClassRepresentation}
\title{Create a Class Definition}
\description{
  Constructs a \code{\link{classRepresentation-class}} object to
  describe a particular class.  Mostly a utility function, but you can
  call it to create a class definition without assigning it, as
  \code{\link{setClass}} would do.
}
\usage{
makeClassRepresentation(name, slots=list(), superClasses=character(),
                        prototype=NULL, package, validity, access,
                        version, sealed, virtual=NA, where)
}
\arguments{
  \item{name}{character string name for the class}
  \item{slots}{named list of slot classes as would be supplied to
    \code{setClass}, but \emph{without} the unnamed arguments for
    superClasses if any.}
  \item{superClasses}{what classes does this class extend}
  \item{prototype}{an object providing the default data for the class,
    e.g, the result of a call to \code{\link{prototype}}.}
  \item{package}{The character string name for the package in which
    the class will be stored; see \code{\link{getPackageName}}.}
  \item{validity}{Optional validity method.  See
    \code{\link{validObject}}, and the discussion of validity methods in
    the reference.}
  \item{access}{Access information.  Not currently used.}
  \item{version}{Optional version key for version control.  Currently
    generated, but not used.}
  \item{sealed}{Is the class sealed? See \code{\link{setClass}}.}
  \item{virtual}{Is this known to be a virtual class?}

  \item{where}{The environment from which to look for class
      definitions needed (e.g., for slots or superclasses). See the
      discussion of this argument under \link{GenericFunctions}.}
}
\references{
  The R package \pkg{methods} implements, with a few exceptions, the
  programming interface for classes and methods in the book
  \emph{Programming with Data} (John M. Chambers, Springer, 1998), in
  particular sections 1.6, 2.7, 2.8, and chapters 7 and 8.

  While the programming interface for the \pkg{methods} package follows
  the reference, the R software is an original implementation, so
  details in the reference that reflect the S4 implementation may appear
  differently in R.  Also, there are extensions to the programming
  interface developed more recently than the reference.  For a
  discussion of details and ongoing development, see the web page
  \url{http://developer.r-project.org/methodsPackage.html} and the
  pointers from that page.
}
\seealso{
  \code{\link{setClass}}
}
\keyword{programming}
\keyword{classes}
