From: Lucian S. <luc...@gm...> - 2015-02-19 20:22:05
|
I thought of that, too, but the problem is that at least for Comp (and I believe some other packages), I created a CompSBasePlugin class that knew basic information like the name of the plugin, its URL, etc. Then all my other Comp[Class]Plugin classes inherited from that. It would be awkward to have to have a different inheritance structure just for the ListOf* classes, or to try to have multiple inheritance or something else goofy like that. It's probably simplest to just have SBasePlugin::isValidTypeForList, which happens to only be relevant if the class that has the plugin is a ListOf. At least, that was my take on it. -Lucian On Thu, Feb 19, 2015 at 12:15 PM, Zhang, Fengkai (NIH/NIAID) [E] < zha...@ni...> wrote: > A little concern for this approach is that the isValidTypeForList(SBase*) > function should be more specific to the ListOf class, rather than SBase or > SBasePlugin. But we do not have a "ListOfPlugin", a subclass of SBasePlugin > in place. > > - Fengkai > > > On 02/19/2015 03:05 PM, Zhang, Fengkai (NIH/NIAID) [E] wrote: > >> Exactly! >> >> - Fengkai >> >> On 02/19/2015 03:02 PM, Lucian Smith wrote: >> >>> If I understand correctly, your proposal is indeed how I would envision >>> the change working. We would then implement a virtual function, also in >>> core: >>> >>> SBasePlugin::isValidTypeForList(SBase*) >>> { >>> return false; >>> } >>> >>> Which you would override in >>> MultiListOfReactionsPlugin::isValidTypeForList(SBase*) >>> >>> -Lucian >>> >>> On Thu, Feb 19, 2015 at 11:40 AM, Zhang, Fengkai (NIH/NIAID) [E] >>> <zha...@ni... <mailto:zha...@ni...>> wrote: >>> >>> Hi Sarah, >>> >>> I agree with your strategy in making change at the ListOf core class >>> to help handle the issue. One question is that the getItemTypeCode() >>> function is not in SBasePlugin, would you plan to add it to >>> SBasePlugin? If so, I give my preference to add another function >>> isValidTypeForList(SBase*) and the code with this minor change >>> will be: >>> >>> { >>> bool match = false; >>> >>> match = (item->getTypeCode() == getItemTypeCode()); >>> >>> unsigned int n = 0; >>> while (match == false && n < getNumPlugins()) >>> { >>> match = getPlugin(i)->__isValidTypeForList(item); >>> n++; >>> } >>> >>> return match; >>> } >>> >>> This way should give flexibility to a plugin to justify the >>> qualification of an item type in its isValidTypeForList(SBase*) >>> function and, therefore, an extended list can include multiple item >>> types. >>> >>> Given my limited experience in libsbml, not sure if this reply makes >>> sense, or not. Any comment? >>> >>> >>> >>> Fengkai >>> >>> >>> >>> On 02/19/2015 08:24 AM, Sarah Keating wrote: >>> >>> Hi Fengkai >>> >>> I have had a look at your issue and I think the solution is that >>> multi >>> would need to create a plugin to the ListOfReactions class. >>> >>> Now as yet no one has used a plugin to a listOf object but in >>> principle >>> it should work the same way as plugins to SBase. The generic >>> ListOf >>> functions would need to check if they had any plugins and >>> transfer the >>> function to those when appropriate. >>> >>> So the ListOf:isValidTypeForList(__SBase * item) >>> >>> would do something like >>> >>> { >>> bool match = false; >>> >>> match = (item->getTypeCode() == getItemTypeCode()); >>> >>> unsigned int n = 0; >>> while (match == false && n < getNumPlugins()) >>> { >>> match = (item->getTypeCode() == >>> getPlugin(i)->getItemTypeCode(__)) >>> n++; >>> } >>> >>> return match; >>> } >>> >>> where the plugin for the ListOfReactions would allow the >>> typecode for >>> the IntraSpeciesReaction. >>> >>> So >>> >>> 1. Does that make sense ? >>> >>> 2. Do you want to have a bash at this or shall I ? >>> >>> Thanks >>> >>> Sarah >>> >>> >>> >>> ------------------------------__---------------------------- >>> --__------------------ >>> >>> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server >>> from Actuate! Instantly Supercharge Your Business Reports and >>> Dashboards >>> with Interactivity, Sharing, Native Excel Exports, App >>> Integration & more >>> Get technology previously reserved for billion-dollar >>> corporations, FREE >>> >>> http://pubads.g.doubleclick.__net/gampad/clk?id=190641631&__ >>> iu=/4140/ostg.clktrk >>> >>> >>> <http://pubads.g.doubleclick.net/gampad/clk?id=190641631& >>> iu=/4140/ostg.clktrk> >>> >>> _________________________________________________ >>> Sbml-multi mailing list >>> Sbm...@li...urceforge.__net >>> <mailto:Sbm...@li...> >>> https://lists.sourceforge.net/__lists/listinfo/sbml-multi >>> <https://lists.sourceforge.net/lists/listinfo/sbml-multi> >>> >>> >>> -- >>> >>> ========================= >>> Fengkai Zhang, MD, MMath >>> Staff Scientist >>> Laboratory of Systems Biology, DIR, NIAID >>> 9000 Rockville Pike >>> Building 4, Room 137 >>> MSC 0421 >>> Bethesda MD 20892 >>> Phone: 301.496.0985 <tel:301.496.0985> >>> Fax: 301.480.1660 <tel:301.480.1660> >>> NIAID, National Institutes of Health, DHHS >>> >>> >>> "Disclaimer: >>> >>> The information in this e-mail and any of its attachments is >>> confidential and may contain sensitive information. It should not be >>> used by anyone who is not the original intended recipient. If you >>> have received this e-mail in error please inform the sender and >>> delete it from your mailbox or any other storage devices. National >>> Institute of Allergy and Infectious Diseases shall not accept >>> liability for any statements made that are sender's own and not >>> expressly made on behalf of the NIAID by one of its >>> representatives. " >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "libsbml-development" group. >>> To unsubscribe from this group and stop receiving emails from it, >>> send an email to lib...@go... >>> <mailto:libsbml-development%2Bu...@go...>. >>> To post to this group, send email to >>> libsbml-development@__googlegroups.com >>> <mailto:lib...@go...>. >>> To view this discussion on the web visit >>> >>> https://groups.google.com/d/__msgid/libsbml-development/__ >>> 54E63C45.5070305%40niaid.nih.__gov >>> >>> >>> <https://groups.google.com/d/msgid/libsbml-development/ >>> 54E63C45.5070305%40niaid.nih.gov>. >>> >>> >>> For more options, visit https://groups.google.com/d/__optout >>> <https://groups.google.com/d/optout>. >>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "libsbml-development" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to lib...@go... >>> <mailto:lib...@go...>. >>> To post to this group, send email to >>> lib...@go... >>> <mailto:lib...@go...>. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/libsbml-development/ >>> CAHLmBr0AvDPM90pZHAMgRE8YqjsZ0hfH4Abo1qWw1hX-rDhV_w%40mail.gmail.com >>> >>> <https://groups.google.com/d/msgid/libsbml-development/ >>> CAHLmBr0AvDPM90pZHAMgRE8YqjsZ0hfH4Abo1qWw1hX-rDhV_w%40mail. >>> gmail.com?utm_medium=email&utm_source=footer>. >>> >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> > -- > > ========================= > Fengkai Zhang, MD, MMath > Staff Scientist > Laboratory of Systems Biology, DIR, NIAID > 9000 Rockville Pike > Building 4, Room 137 > MSC 0421 > Bethesda MD 20892 > Phone: 301.496.0985 > Fax: 301.480.1660 > NIAID, National Institutes of Health, DHHS > > > "Disclaimer: > > The information in this e-mail and any of its attachments is confidential > and may contain sensitive information. It should not be used by anyone who > is not the original intended recipient. If you have received this e-mail in > error please inform the sender and delete it from your mailbox or any other > storage devices. National Institute of Allergy and Infectious Diseases > shall not accept liability for any statements made that are sender's own > and not expressly made on behalf of the NIAID by one of its > representatives. " > > -- > You received this message because you are subscribed to the Google Groups > "libsbml-development" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to lib...@go.... > To post to this group, send email to lib...@go.... > To view this discussion on the web visit https://groups.google.com/d/ > msgid/libsbml-development/54E64466.8020107%40niaid.nih.gov. > > For more options, visit https://groups.google.com/d/optout. > |