Learn R Programming

R.oo (version 1.7.5)

setConstructorS3: Defines a class in S3/UseMethod style

Description

Defines a class in R.oo/S3 style. The class name is validated so it starts with a letter and it also gives a warning if its first letter is not captial. The reason for this is to enforce a naming convention that names classes with upper-case initial letters and methods with lower-case initial letters (this is also the case in for instance Java). What this function currently does is simply creating a constructor function for the class. Note: The constructor must be able to be called with no arguments, i.e. use default values for all arguments or make sure you use missing() or similar! For instance the following defintion is not correct: setConstructorS3("Foo", function(x) extend(Object(), "Foo", x=x)) whereas this one is setConstructorS3("Foo", function(x=NA) extend(Object(), "Foo", x=x))

Usage

## S3 method for class 'default':
setConstructorS3(name, definition, private=FALSE, protected=FALSE, static=FALSE, abstract=FALSE, trial=FALSE, deprecated=FALSE, envir=parent.frame(), enforceRCC=TRUE, ...)

Arguments

name
The name of the class.
definition
The constructor defintion. Note: The constructor must be able to be called with no arguments, i.e. use default values for all arguments or make sure you use missing() or similar!
static
If TRUE this class is defined to be static, otherwise not. Currently this has no effect expect as an indicator.
abstract
If TRUE this class is defined to be abstract, otherwise not. Currently this has no effect expect as an indicator.
private
If TRUE this class is defined to be private.
protected
If TRUE this class is defined to be protected.
trial
If TRUE this class is defined to be a trial class, otherwise not. A trial class is a class that is introduced to be tried out and it might be modified, replaced or even removed in a
deprecated
If TRUE this class is defined to be deprecated, otherwise not. Currently this has no effect expect as an indicator.
envir
The environment for where the class (constructor function) should be stored.
enforceRCC
If TRUE, only class names following the R Coding Convention is accepted. If the RCC is violated an RccViolationException is thrown.
...
Not used.

See Also

To define a method see setMethodS3. For information about the R Coding Conventions, see RccViolationException. For a thorough example of how to use this method see Object.

Examples

Run this code
For a complete example see help(Object).

Run the code above in your browser using DataLab