Hi Vince,

On 04/17/2014 04:19 AM, Vincent Carey wrote:



On Thu, Apr 17, 2014 at 2:37 AM, Hervé Pagès <hpa...@fhcrc.org
<mailto:hpa...@fhcrc.org>> wrote:

    Hi Vince,


    On 04/10/2014 08:16 AM, Vincent Carey wrote:

        seems like something we should use more routinely, and it was not
        straightforward for me to find it in IRanges


    I could do that but...

    Good object design would be that if a developer wants its class to
    support the metadata() getter and setter, s/he should extend the
    Annotated class defined in IRanges. This class has only 1 slot, the
    metadata slot, and a very simple API: just metadata(). So by extending
    it, metadata() will work out-of-the-box on his/her objects. This avoids
    code duplication and ensures that the metadata() getter and setter
    behave consistently on all objects.

    I can see that a developer could be reluctant to depend on IRanges just
    to inherit the Annotated class though. But maybe this means that the
    Annotated class and the metadata() generic are in the wrong package?


  thanks for the comment; i can deal with the situation as is.

An update on this: the Annotated class and metadata() accessor are now
in S4Vectors. Note that, as Michael pointed out, the Annotated class
is only an implementation for metadata(). It's really straightforward
(and very convenient) to have your class extend it. However if, for
whatever reason, you cannot or don't want to do this, you still need
to depend on S4Vectors to get the metadata() generic getter and setter,
which is not as light as BiocGenerics but is lower-level and lighter
than IRanges. The hope is that developers will be less reluctant to
depend on S4Vectors than on IRanges.

Cheers,
H.


    Cheers,
    H.


                 [[alternative HTML version deleted]]

        _________________________________________________
        Bioc-devel@r-project.org <mailto:Bioc-devel@r-project.org>
        mailing list
        https://stat.ethz.ch/mailman/__listinfo/bioc-devel
        <https://stat.ethz.ch/mailman/listinfo/bioc-devel>


    --
    Hervé Pagès

    Program in Computational Biology
    Division of Public Health Sciences
    Fred Hutchinson Cancer Research Center
    1100 Fairview Ave. N, M1-B514
    P.O. Box 19024
    Seattle, WA 98109-1024

    E-mail: hpa...@fhcrc.org <mailto:hpa...@fhcrc.org>
    Phone: (206) 667-5791 <tel:%28206%29%20667-5791>
    Fax: (206) 667-1319 <tel:%28206%29%20667-1319>



--
Hervé Pagès

Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024

E-mail: hpa...@fhcrc.org
Phone:  (206) 667-5791
Fax:    (206) 667-1319

_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel

Reply via email to