% File src/library/methods/man/SClassExtension-class.Rd % Part of the R package, https://www.R-project.org % Copyright 1995-2013 R Core Team % Distributed under GPL 2 or later \name{SClassExtension-class} \docType{class} \alias{SClassExtension-class} \title{Class to Represent Inheritance (Extension) Relations } \description{ An object from this class represents a single \sQuote{is} relationship; lists of these objects are used to represent all the extensions (superclasses) and subclasses for a given class. The object contains information about how the relation is defined and methods to coerce, test, and replace correspondingly. } \section{Objects from the Class}{ Objects from this class are generated by \code{\link{setIs}}, from direct calls and from the \code{contains=} information in a call to \code{\link{setClass}}, and from class unions created by \code{\link{setClassUnion}}. In the last case, the information is stored in defining the \emph{subclasses} of the union class (allowing unions to contain sealed classes). } \section{Slots}{ \describe{ \item{\code{subClass}, \code{superClass}:}{The classes being extended: corresponding to the \code{from}, and \code{to} arguments to \code{\link{setIs}}. } \item{\code{package}:}{The package to which that class belongs. } \item{\code{coerce}:}{A function to carry out the as() computation implied by the relation. Note that these functions should \emph{not} be used directly. They only deal with the \code{strict=TRUE} calls to the \code{\link{as}} function, with the full method constructed from this mechanically. } \item{\code{test}:}{The function that would test whether the relation holds. Except for explicitly specified \code{test} arguments to \code{\link{setIs}}, this function is trivial. } \item{\code{replace}:}{The method used to implement \code{as(x, Class) <- value}.} \item{\code{simple}:}{A \code{"logical"} flag, \code{TRUE} if this is a simple relation, either because one class is contained in the definition of another, or because a class has been explicitly stated to extend a virtual class. For simple extensions, the three methods are generated automatically.} \item{\code{by}:}{If this relation has been constructed transitively, the first intermediate class from the subclass. } \item{\code{dataPart}:}{A \code{"logical"} flag, \code{TRUE} if the extended class is in fact the data part of the subclass. In this case the extended class is a basic class (i.e., a type). } \item{\code{distance}:}{The distance between the two classes, 1 for directly contained classes, plus the number of generations between otherwise. } } } \section{Methods}{ No methods defined with class \code{"SClassExtension"} in the signature. } \seealso{ \code{\link{is}}, \code{\link{as}}, and the \code{\linkS4class{classRepresentation}} class. } \keyword{classes}