[Bioc-devel] implementing interfaces
Martin Morgan
mtmorgan at fhcrc.org
Tue Nov 25 21:21:16 CET 2008
James Bullard wrote:
> hi all, this will probably demonstrate my lack of knowledge concerning
> OOP in R, but I am hoping for some quick answers. This is a problem I
> have faced before.
>
> I want to use the method bg.correct.mas, this method takes as its object
> an AffyBatch. I don't have an AffyBatch nor do I want to massage my data
> structures into such an object, so I want to implement the AffyBatch
> interface. However, I can see no way to determine the list of generics
> which have methods defined on AffyBatch (and superclasses). I understand
> that things are method-centric, however I assume that being
> method-centric still leaves room for a way to know the methods
> specialized for a class/interface so that I as a programmer can define
> the suitable methods on a new class without having to dig around all
> over the place determining what I need to define. My question is:
>
> is there a function to determine all the methods that are specialized
> for a certain class? Also, would it be possible to write a function
> adheresTo(classA, classB), which tells me that classB satisfies the
> calling requirements of classA (forget for a moment that we have public
> member variables).
>
> note, i don't want to make a subclass of AffyBatch.
showMethods(class="AffyBatch")
gets you some of the way there. But in a brand spanking new session it
shows nothing (because the packages where methods are defined, e.g.,
affy, has not been loaded) and this illustrates a fundamental problem:
the interface to AffyBatch is dynamically determined by loaded packages.
Likely you'd invoke
showMethods(class="AffyBatch", where=getNamespace("affy")
to get a kind of base-line set of expected methods, i.e., those visible
from affy.
AshowMethods returns a connection (!) which is basically useless for
programmatic purposes, e.g., adheresTo().
Martin
> thanks, jim
>
> _______________________________________________
> Bioc-devel at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/bioc-devel
--
Martin Morgan
Computational Biology / Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N.
PO Box 19024 Seattle, WA 98109
Location: Arnold Building M2 B169
Phone: (206) 667-2793
More information about the Bioc-devel
mailing list