Provided by: libbio-eutilities-perl_1.77-1_all bug

NAME

       Bio::Tools::EUtilities::Summary::ItemContainerI - Abtract interface methods for accessing
       Item information from any Item-containing class. This pertains to either DocSums or to
       Items themselves (which can be layered).

VERSION

       version 1.77

SYNOPSIS

         # Implement ItemContainerI

         # $foo is any ItemContainerI (current implementations are DocSum and Item itself)

         while (my $item = $foo->next_Item) { # iterate through contained Items
            # do stuff here
         }

         @items = $foo->get_Items;  # all Items in the container (hierarchy intact)
         @items = $foo->get_all_Items;  # all Items in the container (flattened)
         @items = $foo->get_Items_by_name('bar'); # Specifically named Items
         ($content) = $foo->get_contents_by_name('bar'); # content from specific Items
         ($type) = $foo->get_type_by_name('bar'); # data type from specific Items

DESCRIPTION

       DocSum data, as returned from esummary, normally is a simple list of
       item-content-content_type groups. However, items can also contain nested data to represent
       more complex data (such as structural data). This interface describes the basic methods to
       generically retrieve the next layer of Item data. For convenience classes may describe
       more specific methods, but they should be defined in terms of this interface and it's
       methods.

   next_Item
        Title    : next_Item
        Usage    : while (my $item = $docsum->next_Item) {...}
        Function : iterates through Items (nested layer of Item)
        Returns  : single Item
        Args     : [optional] single arg (string)
                   'flatten' - iterates through a flattened list ala
                                 get_all_DocSum_Items()

   get_Items
        Title    : get_Items
        Usage    : my @items = $docsum->get_Items
        Function : returns list of, well, Items
        Returns  : array of Items
        Args     : none

   get_all_Items
        Title    : get_all_Items
        Usage    : my @items = $docsum->get_all_Items
        Function : returns flattened list of all Item objects (Items, ListItems,
                   StructureItems)
        Returns  : array of Items
        Args     : none
        Note     : items are added top-down (similar order to using nested calls)
                   in original list order.

                    1         2        7        8
                  Item  -   Item  -  Item  -  Item ...
                            |
                           | 3        6
                        ListItem - ListItem
                          |
                         | 4          5
                      Structure - Structure

   get_all_names
        Title    : get_all_names
        Usage    : my @names = get_all_names()
        Function : Returns an array of names for all Item(s) in DocSum.
        Returns  : array of unique strings
        Args     : none

   get_Items_by_name
        Title    : get_Items_by_name
        Usage    : my @items = get_Items_by_name('CreateDate')
        Function : Returns named Item(s) in DocSum (indicated by passed argument)
        Returns  : array of Item objects
        Args     : string (Item name)

   get_contents_by_name
        Title    : get_contents_by_name
        Usage    : my ($data) = $eutil->get_contents_by_name('CreateDate')
        Function : Returns content for named Item(s) in DocSum (indicated by
                   passed argument)
        Returns  : array of values (type varies per Item)
        Args     : string (Item name)

   get_type_by_name
        Title    : get_type_by_name
        Usage    : my $data = get_type_by_name('CreateDate')
        Function : Returns data type for named Item in DocSum (indicated by
                   passed argument)
        Returns  : scalar value (string) if present
        Args     : string (Item name)

FEEDBACK

   Mailing lists
       User feedback is an integral part of the evolution of this and other Bioperl modules. Send
       your comments and suggestions preferably to the Bioperl mailing list.  Your participation
       is much appreciated.

         bioperl-l@bioperl.org               - General discussion
         https://bioperl.org/Support.html    - About the mailing lists

   Support
       Please direct usage questions or support issues to the mailing list: bioperl-l@bioperl.org
       rather than to the module maintainer directly. Many experienced and reponsive experts will
       be able look at the problem and quickly address it. Please include a thorough description
       of the problem with code and data examples if at all possible.

   Reporting bugs
       Report bugs to the Bioperl bug tracking system to help us keep track of the bugs and their
       resolution. Bug reports can be submitted via the web:

         https://github.com/bioperl/bio-eutilities/issues

AUTHOR

       Chris Fields <cjfields@bioperl.org>

COPYRIGHT

       This software is copyright (c) 2006-2013 by Chris Fields.

       This software is available under the same terms as the perl 5 programming language system
       itself.

perl v5.30.0                                2Bio::Tools::EUtilities::Summary::ItemContainerI(3pm)