classRepresentation-class      package:methods      R Documentation

Class Objects

Description:

     These are the objects that hold the definition of classes of
     objects.  They are constructed and stored as meta-data by calls to
     the function 'setClass'.  Don't manipulate them directly, except
     perhaps to look at individual slots.

Details:

     Class definitions are stored as metadata in various packages.
     Additional metadata supplies information on inheritance (the
     result of calls to 'setIs').  Inheritance information implied by
     the class definition itself (because the class contains one or
     more other classes) is also constructed automatically.

     When a class is to be used in an R session, this information is
     assembled to complete the class definition.  The completion is a
     second object of class '"classRepresentation"', cached for the
     session or until something happens to change the information.  A
     call to 'getClass' returns the completed definition of a class; a
     call to 'getClassDef' returns the stored definition (uncompleted).

     In particular, completion fills in the upward- and
     downward-pointing inheritance information for the class, in slots
     'contains' and 'subclasses' respectively.  It's in principle
     important to note that this information can depend on which
     packages are installed, since these may define additional
     subclasses or superclasses.

Slots:

     'slots': A named list of the slots in this class; the elements of
          the list are the classes to which the slots must belong (or
          extend), and the names of the list gives the corresponding
          slot names.

     'contains': A named list of the classes this class 'contains'; the
          elements of the list are objects of 'SClassExtension-class'.
          The list may be only the direct extensions or all the
          currently known extensions (see the details).

     'virtual': Logical flag, set to 'TRUE' if this is a virtual class.

     'prototype': The object that represents the standard prototype for
          this class; i.e., the data and slots returned by a call to
          'new' for this class with no special arguments.  Don't mess
          with the prototype object directly.

     'validity': Optionally, a function to be used to test the validity
          of objects from this class. See 'validObject'.

     'access': Access control information.  Not currently used.

     'className': The character string name of the class.

     'package': The character string name of the package to which the
          class belongs.  Nearly always the package on which the
          metadata for the class is stored, but in operations such as
          constructing inheritance information, the internal package
          name rules. 

     'subclasses': A named list of the classes known to extend this
          class'; the elements of the list are objects of
          'SClassExtension-class'.  The list is currently only filled
          in when completing the class definition (see the details).

     'versionKey': Object of class '"externalptr"'; eventually will
          perhaps hold some versioning information, but not currently
          used. 

     'sealed': Object of class '"logical"'; is this class sealed?  If
          so, no modifications are allowed. 

See Also:

     See function 'setClass' to supply the information in the class
     definition. See Classes for a more basic discussion of class
     information.

