setGroupGeneric
Create a Group Generic Version of a Function
The setGroupGeneric
function behaves like setGeneric
except that it constructs a group generic function, differing in two
ways from an ordinary generic function. First, this function cannot
be called directly, and the body of the function created will contain
a stop call with this information. Second, the group generic function
contains information about the known members of the group, used to
keep the members up to date when the group definition changes, through
changes in the search list or direct specification of methods, etc.
All members of the group must have the identical argument list.
- Keywords
- programming , methods
Usage
setGroupGeneric(name, def= , group=list(), valueClass=character(),
knownMembers=list(), package= , where= )
Arguments
- name
the character string name of the generic function.
- def
A function object. There isn't likely to be an existing nongeneric of this name, so some function needs to be supplied. Any known member or other function with the same argument list will do, because the group generic cannot be called directly.
- group, valueClass
arguments to pass to
setGeneric
.- knownMembers
the names of functions that are known to be members of this group. This information is used to reset cached definitions of the member generics when information about the group generic is changed.
- package, where
passed to
setGeneric
, but obsolete and to be avoided.
Value
The setGroupGeneric
function exists for its side effect: saving the
generic function to allow methods to be specified later. It returns
name
.
References
Chambers, John M. (2016) Extending R Chapman & Hall
See Also
Methods_Details
and the links there for a general discussion,
dotsMethods
for methods that dispatch on
…
, and setMethod
for method definitions.
Examples
library(methods)
# NOT RUN {
## the definition of the "Logic" group generic in the methods package
setGroupGeneric("Logic", function(e1, e2) NULL,
knownMembers = c("&", "|"))
# }