BioPerl-DB
view release on metacpan or search on metacpan
lib/Bio/DB/BioSQL/PrimarySeqAdaptor.pm view on Meta::CPAN
Title : attach_foreign_key_objects
Usage :
Function: Attaches foreign key objects to the given object as far as
necessary.
This method is called after find_by_XXX() queries, not for INSERTs
or UPDATEs.
PrimarySeqIs have a BioNamespace as foreign key.
Example :
Returns : TRUE on success, and FALSE otherwise.
Args : The object to which to attach foreign key objects.
A reference to an array of foreign key values, in the order of
foreign keys returned by get_foreign_key_objects().
=cut
sub attach_foreign_key_objects{
my ($self,$obj,$fks) = @_;
# retrieve namespace by primary key
my $nsadp = $self->_bionamespace_adaptor();
my $ns = $nsadp->find_by_primary_key($fks->[0]);
if($ns) {
$obj->namespace($ns->namespace()) if $ns->namespace();
$obj->authority($ns->authority()) if $ns->authority();
return 1;
}
return 0;
}
=head2 store_children
Title : store_children
Usage :
Function: Inserts or updates the child entities of the given object in the
datastore.
Bio::PrimarySeqI has a sequence as child.
Example :
Returns : TRUE on success, and FALSE otherwise
Args : The Bio::DB::PersistentObjectI implementing object for which the
child objects shall be made persistent.
=cut
sub store_children{
my ($self,$obj) = @_;
# delegate to Biosequence adaptor
return $self->_bioseq_adaptor()->store($obj);
}
=head2 remove_children
Title : remove_children
Usage :
Function: This method is to cascade deletes in maintained objects.
We just return TRUE here.
Example :
Returns : TRUE on success and FALSE otherwise
Args : The persistent object that was just removed from the database.
Additional (named) parameter, as passed to remove().
=cut
sub remove_children{
return 1;
}
=head2 attach_children
Title : attach_children
Usage :
Function: Possibly retrieve and attach child objects of the given object.
This is needed when whole object trees are supposed to be built
when a base object is queried for and returned. An example would
be Bio::SeqI objects and all the annotation objects that hang off
of it.
This is called by the find_by_XXXX() methods once the base object
has been built.
For Bio::PrimarySeqIs, we need to get the biosequence attributes
as well.
Example :
Returns : TRUE on success, and FALSE otherwise.
Args : The object for which to find and to which to attach the child
objects.
=cut
sub attach_children{
my ($self,$obj) = @_;
my $adp = $self->_bioseq_adaptor();
# This will find the biosequence by its foreign key to bioentry, since
# that's the UK. Subsequently, it will populate the biosequence-specific
# slots of $obj with the found record.
my $o = $adp->find_by_unique_key($obj);
# on success, $o == $obj, and $o == undef otherwise
# however, some SeqI objects may legally lack any of those attributes
# and hence may not have an entry here, so we'll have to be permissive
return 1; #$o ? 1 : 0;
}
=head2 instantiate_from_row
Title : instantiate_from_row
Usage :
Function: Instantiates the class this object is an adaptor for, and populates
it with values from columns of the row.
( run in 1.391 second using v1.01-cache-2.11-cpan-39bf76dae61 )