has.method: Determine whether a function can be applied to an S4...

View source: R/NCmisc.R

has.methodR Documentation

Determine whether a function can be applied to an S4 class/object

Description

Wrapper for 'showMethods', allows easy testing whether a function (can be specified as a string, or the actual function itself (FUN)) can be applied to a specific object or class of objects (CLASS)

Usage

has.method(FUN, CLASS, false.if.error = FALSE, ...)

Arguments

FUN

the function to test, can be specified as a string, or the actual function itself

CLASS

a specific object or a class of objects specified by a string, e.g, "GRanges"

false.if.error

logical, the default value is FALSE, in which case an error is returned when FUN is not an S4 generic function. If this parameter is set to TRUE, 'FALSE' will be returned with a warning instead of an error.

...

additional arguments to showMethods(), e.g, 'where' to specify the environment

Value

returns logical (TRUE/FALSE), or if the function is not S4 will return an error, although this could potentially be because the function's package has not been loaded.

Examples

require(Matrix); require(methods)
has.method("t","dgeMatrix") # t() is the transpose method for a dgeMatrix object
has.method(t,"dgeMatrix") # also works without quotes for the method
m.example <- as(matrix(rnorm(100),ncol=5),"dgeMatrix")
has.method(t, m.example) # works with an instance of an object type too
has.method("band", m.example) # band is a function for a 'denseMatrix' but not 'dgeMatrix'
## not run # has.method("notAFunction","GRanges") # should return error
## not run # has.method("notAFunction","GRanges",TRUE) # should return FALSE and a warning

NCmisc documentation built on Oct. 17, 2022, 5:09 p.m.