SClassExtension-class {methods} | R Documentation

## Class to Represent Inheritance (Extension) Relations

### Description

An object from this class represents a single ‘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.

### Objects from the Class

Objects from this class are generated by `setIs`, from direct calls and from the `contains=` information in a call to `setClass`, and from class unions created by `setClassUnion`. In the last case, the information is stored in defining the subclasses of the union class (allowing unions to contain sealed classes).

### Slots

`subClass`, `superClass`:

  The classes being extended: corresponding to the `from`, and `to` arguments to `setIs`.

`package`:

  The package to which that class belongs.

`coerce`:

  A function to carry out the as() computation implied by the relation. Note that these functions should not be used directly. They only deal with the `strict=TRUE` calls to the `as` function, with the full method constructed from this mechanically.

`test`:

  The function that would test whether the relation holds. Except for explicitly specified `test` arguments to `setIs`, this function is trivial.

`replace`:

  The method used to implement `as(x, Class) <- value`.

`simple`:

  A `"logical"` flag, `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.

`by`:

  If this relation has been constructed transitively, the first intermediate class from the subclass.

`dataPart`:

  A `"logical"` flag, `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).

`distance`:

  The distance between the two classes, 1 for directly contained classes, plus the number of generations between otherwise.

### Methods

No methods defined with class `"SClassExtension"` in the signature.

### See Also

`is`, `as`, and the `classRepresentation` class.

[Package methods version 3.3.0 Index]