Provided by: libbio-perl-perl_1.7.2-2_all bug


       Bio::Factory::ObjectBuilderI - Interface for an object builder


       Give standard usage here


       An object builder is different from an object factory in that it accumulates information
       for the object and finally, or constantly, depending on the implementation, builds the
       object. It also allows for implementations that can tell the information feed in which
       kind of information the builder is interested in which not. In addition, the
       implementation may choose to filter, transform, or completely ignore certain content it is
       fed for certain slots.

       Implementations will hence be mostly used by stream-based parsers to parse only desired
       content, and/or skip over undesired entries.


   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.
                  - General discussion  - About the mailing lists

       Please direct usage questions or support issues to the mailing list:

       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:

AUTHOR - Hilmar Lapp

       Email hlapp at


       The rest of the documentation details each of the object methods.  Internal methods are
       usually preceded with a _

        Title   : want_slot
        Usage   :
        Function: Whether or not the object builder wants to populate the
                  specified slot of the object to be built.

                  The slot can be specified either as the name of the
                  respective method, or the initialization parameter that
                  would be otherwise passed to new() of the object to be

        Example :
        Returns : TRUE if the object builder wants to populate the slot, and
                  FALSE otherwise.
        Args    : the name of the slot (a string)

        Title   : add_slot_value
        Usage   :
        Function: Adds one or more values to the specified slot of the object
                  to be built.

                  Naming the slot is the same as for want_slot().

                  The object builder may further filter the content to be
                  set, or even completely ignore the request.

                  If this method reports failure, the caller should not add
                  more values to the same slot. In addition, the caller may
                  find it appropriate to abandon the object being built

        Example :
        Returns : TRUE on success, and FALSE otherwise
        Args    : the name of the slot (a string)
                  parameters determining the value to be set

        Title   : want_object
        Usage   :
        Function: Whether or not the object builder is still interested in
                  continuing with the object being built.

                  If this method returns FALSE, the caller should not add any
                  more values to slots, or otherwise risks that the builder
                  throws an exception. In addition, make_object() is likely
                  to return undef after this method returned FALSE.

        Example :
        Returns : TRUE if the object builder wants to continue building
                  the present object, and FALSE otherwise.
        Args    : none

        Title   : make_object
        Usage   :
        Function: Get the built object.

                  This method is allowed to return undef if no value has ever
                  been added since the last call to make_object(), or if
                  want_object() returned FALSE (or would have returned FALSE)
                  before calling this method.

                  For an implementation that allows consecutive building of
                  objects, a caller must call this method once, and only
                  once, between subsequent objects to be built. I.e., a call
                  to make_object implies 'end_object.'

        Example :
        Returns : the object that was built
        Args    : none