15 Apr 2011 19:35:57 UTC
- Distribution: BioPerl-DB
- Source (raw)
- Browse (raw)
- How to Contribute
- Testers (1 / 74 / 1)
- KwaliteeBus factor: 2
- % Coverage
- License: perl_5
- Perl: v5.6.1
- Download (481.25KB)
- MetaCPAN Explorer
- Subscribe to distribution
- This version
- Latest version
- BioPerl Team
- AUTHOR - Hilmar Lapp
- Methods for transactional control
- Methods to mimic the wrapped object
- Implementation of the decorating methods
Bio::DB::Persistent::PersistentObject - makes a given object persistent
# obtain a PersistentObject somehow, e.g. $pobj = $dbadaptor->create_persistent("Bio::Seq"); # manipulate and query as if it were the wrapped object itself print $pobj->isa("Bio::PrimarySeqI"), "\n"; $pobj->display_id("O238356"); $pobj->seq("ATCATCGACTGACAGGCAGTATCGACTAGCA"); $fea = Bio::SeqFeature::Generic->new(-start => 3, -end => 15); $fea->attach_seq($pobj); # and so on and so forth # and, finally, or whenever suitable, make it persistent in the datastore $pobj->create(); # change it $pobj->desc("not a useful description"); # and update it in the datastore $pobj->store(); # you may also want it to disappear $pobj->remove();
This class takes any Bioperl object for which an adaptor exists for a certain datastore and makes it implement Bio::DB::PersistentObjectI.
There is one single caveat though. The wrapped object must not use any of the method names defined in Bio::DB::PersistentObjectI, nor obj() or adaptor(). If it does, calls of these methods will never get routed to the wrapped object.
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.
firstname.lastname@example.org - General discussion http://bioperl.org/wiki/Mailing_lists - 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.
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:
Email hlapp at gmx.net
Describe contact details here
Additional contributors names and emails here
The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _
Title : new Usage : my $obj = Bio::DB::Persistent::PersistentObject->new(); Function: Builds a new Bio::DB::Persistent::PersistentObject object Returns : an instance of Bio::DB::Persistent::PersistentObject Args : -object => $obj_to_be_wrapped (mandatory) -adaptor => $adaptor_for_obj (optional, may be set later)
Title : create Usage : $obj->create() Function: Creates the object as a persistent object in the datastore. This is equivalent to an insert. Note that you will be able to retrieve the primary key at any time by calling primary_key() on the object. Example : Returns : The newly assigned primary key. Args : Optionally, additional named parameters. A common parameter will be -fkobjs, with a reference to an array of foreign key objects that are not retrievable from the persistent object itself.
Title : store Usage : $obj->store() Function: Updates the persistent object in the datastore to reflect its attribute values. Example : Returns : TRUE on success and FALSE otherwise Args : Optionally, additional named parameters. A common parameter will be -fkobjs, with a reference to an array of foreign key objects that are not retrievable from the persistent object itself.
Title : remove Usage : $obj->remove() Function: Removes the persistent object from the datastore. Example : Returns : TRUE on success and FALSE otherwise Args : none
Title : primary_key Usage : $obj->primary_key($newval) Function: Get the primary key of the persistent object in the datastore. Note that this implementation does not permit changing the primary key once it has been set. This is for sanity reasons, and may or may not be relaxed in the future. The only exception is changing it to undef. Example : Returns : value of primary_key (a scalar) Args : new value (a scalar, optional)
Title : obj Usage : $obj->obj() Function: Get/set the object that is made persistent through this adaptor. Note that this implementation does not allow to change the value once it has been set. This is for sanity reasons, and may or may not be relaxed in the future. Example : Returns : The object made persistent through this adaptor Args : On set, the new value. Read above for caveat.
Title : adaptor Usage : $obj->adaptor($newval) Function: Get/set of the PersistenceAdaptorI compliant object that actually implements persistence for this object Example : Returns : A Bio::DB::PersistenceAdaptorI compliant object Args : Optionally, on set a Bio::DB::PersistenceAdaptorI compliant object
Title : is_dirty Usage : $obj->is_dirty($newval) Function: Get/set whether this persistent object is to be considered dirty. An object is considered dirty if one or more of it's properties has been altered since it was last obtained from, stored in, or created in the database, or if the create() (insert) or the last store() (update) hasn't been committed or rolled back yet. There are currently 3 known states of this attribute. A value of zero (or false) means the object has not been modified since it either came from the database, or since the changes have been serialized (via store()) and committed (via commit()). A negative value means changes have been serialized, but not yet committed. A positive value means there have been unserialized changes on the object. Example : Returns : value of is_dirty (a scalar) Args : on set, new value (a scalar or undef, optional)
Rollback and commit
Title : commit Usage : Function: Commits the current transaction, if the underlying driver supports transactions. Example : Returns : TRUE Args : none
Title : rollback Usage : Function: Triggers a rollback of the current transaction, if the underlying driver supports transactions. Example : Returns : TRUE Args : none
Title : isa Usage : Function: This is a standard perl object method. We override it here in order to generically claim we implement everything that the wrapped object does. Example : Returns : TRUE if this object is an instance of the given class, or inherits from the given class, and FALSE otherwise Args : the class to query for (a scalar string)
Title : can Usage : Function: This is a standard perl object method. We override it here in order to generically claim we 'can' everything that the wrapped object does. Example : Returns : TRUE if this object is has the named method, and FALSE otherwise Args : the method to query for (a scalar string)
See Bio::DB::PersistentObjectI for further documentation of the methods.
Title : rank Usage : $obj->rank($newval) Function: Get/set the rank of this persistent object in a 1:n or n:n relationship. Example : Returns : value of rank (a scalar) Args : new value (a scalar or undef, optional)
Title : foreign_key_slot Usage : $obj->foreign_key_slot($newval) Function: Get/set of the slot name that is referring to this persistent object as a foreign key. Example : Returns : value of foreign_key_slot (a scalar) Args : new value (a scalar or undef, optional)
Module Install Instructions
To install Bio::BioEntry, copy and paste the appropriate command in to your terminal.
perl -MCPAN -e shell install Bio::BioEntry
For more information on module installation, please visit the detailed CPAN module installation guide.
|s||Focus search bar|
|?||Bring up this help dialog|
|g p||Go to pull requests|
|g i||go to github issues (only if github is preferred repository)|
|g a||Go to author|
|g c||Go to changes|
|g i||Go to issues|
|g d||Go to dist|
|g r||Go to repository/SCM|
|g s||Go to source|
|g b||Go to file browse|