getClass {methods} | R Documentation |
Get Class Definition
Description
Get the definition of a class.
Usage
getClass (Class, .Force = FALSE, where)
getClassDef(Class, where, package, inherits = TRUE)
Arguments
Class |
the character-string name of the class, often with a
|
.Force |
if |
where |
environment from which to begin the search for the definition; by default, start at the top-level (global) environment and proceed through the search list. |
package |
the name or environment of the package asserted to hold the
definition. If it is a non-empty string it is used instead of
|
inherits |
logical; should the class definition be retrieved from
any enclosing environment and also from the cache? If |
Details
Class definitions are stored in metadata objects in a package
namespace or other environment where they are defined. When
packages are loaded, the class definitions in the package are cached in an internal
table. Therefore, most calls to getClassDef
will find the
class in the cache or fail to find it at all, unless inherits
is FALSE
, in which case only the environment(s) defined by
package
or where
are searched.
The class cache allows for multiple definitions of the same class name in separate environments, with of course the limitation that the package attribute or package name must be provided in the call to
Value
The object defining the class. If the class definition is not found,
getClassDef
returns NULL
, while getClass
, which
calls getClassDef
, either generates an error or, if
.Force
is TRUE
, returns a simple definition for the
class. The latter case is used internally, but is not typically
sensible in user code.
The non-null returned value is an object of class
classRepresentation
.
Use functions such as setClass
and
setClassUnion
to create class definitions.
References
Chambers, John M. (2016) Extending R, Chapman & Hall. (Chapters 9 and 10.)
See Also
classRepresentation,
setClass
,
isClass
.
Examples
getClass("numeric") ## a built in class
cld <- getClass("thisIsAnUndefinedClass", .Force = TRUE)
cld ## a NULL prototype
## If you are really curious:
utils::str(cld)
## Whereas these generate errors:
try(getClass("thisIsAnUndefinedClass"))
try(getClassDef("thisIsAnUndefinedClass"))