[Bioc-devel] implementing interfaces
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