Bio::F...Factory(3pm)

πŸ“¦
version 1.7.8 Β· 3 versions
, in debian bookworm, debian trixie, ubuntu jammy, ubuntu noble

πŸ’– NAME πŸ’–

Bio::Factory::ObjectFactory β€” the girlboss factory that instantiates a brand new Bio::Root::RootI (or any class that derives from it) for you, no cap ✨


πŸ¦‹ SYNOPSIS πŸ¦‹

use Bio::Factory::ObjectFactory;

my $factory = Bio::Factory::ObjectFactory->new(-type => 'Bio::Ontology::GOterm');
my $term = $factory->create_object(-name => 'peroxisome',
                                   -ontology => 'Gene Factory',
                                   -identifier => 'GO:0005777');

like bestie, that's the whole vibe right there 🫢


🌸 DESCRIPTION 🌸

okay so this object literally builds Bio::Root::RootI objects generically. it's giving "one factory, infinite glow-ups" πŸ’…


πŸ’Œ FEEDBACK πŸ’Œ

🌈 Mailing Lists 🌈

bestie your feedback is integral to the evolution of this and other Bioperl modules, fr fr 😭 send your comments and suggestions preferably to the Bioperl mailing list. your participation is much appreciated, and we mean it πŸ’–

bioperl-l@bioperl.org                  - General discussion
http://bioperl.org/wiki/Mailing_lists  - About the mailing lists

🫢 Support 🫢

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

bioperl-l@bioperl.org

rather than to the module maintainer directly πŸ™ˆ the way that there are so many experienced and responsive experts who will be able look at the problem and quickly address it... iconic. please include a thorough description of the problem with code and data examples if at all possible, tysm πŸŽ€

πŸ› Reporting Bugs πŸ›

report bugs to the Bioperl bug tracking system so we can keep track of the bugs and their resolution, no bug left behind ✨ bug reports can be submitted via the web:

https://github.com/bioperl/bioperl-live/issues

πŸ‘‘ AUTHOR - Hilmar Lapp πŸ‘‘

Email: hlapp at gmx.net β€” yes the man himself πŸ’œ


⭐ CONTRIBUTORS ⭐

ngl this is mostly copy-and-paste with subsequent adaptation from Bio::Seq::SeqFactory by Jason Stajich. most credits should in fact go to him πŸ₯° king behavior, periodt.


πŸŽ€ APPENDIX πŸŽ€

the rest of the documentation details each of the object methods. internal methods are usually preceded with a _ (iykyk 🧚)

✨ new ✨

Title   : new
Usage   : my $obj = Bio::Factory::ObjectFactory->new();
Function: Builds a new Bio::Factory::ObjectFactory object
Returns : Bio::Factory::ObjectFactory
Args    : -type      => string, name of a L<Bio::Root::RootI> derived class.
                          There is no default.
          -interface => string, name of the interface or class any type
                          specified needs to at least implement.
                          The default is Bio::Root::RootI.

so like, -type has no default β€” you gotta tell her what to build, bestie, she's not a mind reader 😭 and -interface defaults to Bio::Root::RootI πŸ’–

🌟 create_object 🌟

Title   : create_object
Usage   : my $seq = $factory->create_object(<named parameters>);
Function: Instantiates a new object of the previously set type.

          This object allows us to genericize the instantiation of
          objects.

          You must have provided -type at instantiation, or have
          called type($mytype) before you can call this method.

Returns : an object of the type returned by type()

          The return type is configurable using new(-type =>"..."),
          or by calling $self->type("My::Fancy::Class").
Args    : Initialization parameters specific to the type of
          object we want. Check the POD of the class you set as type.
⚠️ okay important: you must have provided -type at instantiation, or have called type($mytype) before you can call this method. no type = no object. she will simply not manifest it for you πŸ’€

the return type is configurable using new(-type =>"..."), or by calling $self->type("My::Fancy::Class") β€” main character energy tbh πŸ’…

πŸ’« type πŸ’«

Title   : type
Usage   : $obj->type($newval)
Function: Get/set the type of object to be created.

          This may be changed at any time during the lifetime of this
          factory.

Returns : value of type (a string)
Args    : newvalue (optional, a string)

get/set the type of object to be created ✨ and yes she's flexible β€” this may be changed at any time during the lifetime of this factory. glow-up whenever, bestie 🌈

πŸ¦„ interface πŸ¦„

Title   : interface
Usage   : $obj->interface($newval)
Function: Get/set the interface or base class that supplied types
          must at least implement (inherit from).
Example :
Returns : value of interface (a scalar)
Args    : on set, new value (a scalar or undef, optional)

πŸ”₯ _validate_type πŸ”₯

Title   : _validate_type
Usage   : $factory->_validate_type($object)
Function: Called to let derived factories validate the type set
          via type().

          The default implementation here checks whether the supplied
          object skeleton implements the interface set via -interface
          upon factory instantiation.

Example :
Returns : TRUE if the type is to be considered valid, and FALSE otherwise.
          Instead of returning FALSE this method may also just throw
          an informative exception.

          The default implementation here will throw an exception
          if the supplied object does not inherit from the interface
          provided by the interface() method.

Args    : A hash reference blessed into the specified type, allowing
          queries like isa().

so this one's the internal vibe check 🧚 derived factories get to validate the type set via type(). the default implementation here checks whether the supplied object skeleton implements the interface set via -interface upon factory instantiation.

it returns TRUE if the type is to be considered valid, and FALSE otherwise β€” tho instead of returning FALSE this method may also just throw an informative exception, dramatic queen πŸ’…

⚠️ and fr fr: the default implementation here will throw an exception if the supplied object does not inherit from the interface provided by the interface() method. not a drill, bestie.

args: a hash reference blessed into the specified type, allowing queries like isa() πŸ’–


and that's the whole page, bestie!! πŸŽ€ this is Bio::F...Factory(3pm), one of the User Contributed Perl Documentation pages, straight out of perl v5.32.1 dated 2021-08-15 β€” thank you for coming to my ted talk, mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from