-
Arne Stabenau authored33535f63
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
BaseAdaptor.pm 14.59 KiB
#
# BioPerl module for Bio::EnsEMBL::DBSQL::BaseAdaptor
#
# Cared for by Ewan Birney <birney@ebi.ac.uk>
#
# Copyright Ewan Birney
#
# You may distribute this module under the same terms as perl itself
# POD documentation - main docs before the code
=head1 NAME
Bio::EnsEMBL::DBSQL::BaseAdaptor - Base Adaptor for DBSQL adaptors
=head1 SYNOPSIS
# base adaptor provides
# SQL prepare function
$adaptor->prepare("sql statement");
# get of root DBAdaptor object
$adaptor->db();
# constructor, ok for inheritence
$adaptor = Bio::EnsEMBL::DBSQL::SubClassOfBaseAdaptor->new($dbobj)
=head1 DESCRIPTION
This is a true base class for Adaptors in the Ensembl DBSQL
system. Original idea from Arne
Adaptors are expected to have the following functions
$obj = $adaptor->fetch_by_dbID($internal_id);
which builds the object from the primary key of the object. This
function is crucial because it allows adaptors to collaborate
relatively independently of each other - in other words, we can change
the schema under one adaptor without too many knock on changes through
the other adaptors.
Most adaptors will also have
$dbid = $adaptor->store($obj);
which stores the object. Currently the storing of an object also causes
the objects to set
$obj->dbID
correctly and attach the adaptor.
Other fetch functions go by the convention of
@object_array = @{$adaptor->fetch_all_by_XXXX($arguments_for_XXXX)};
sometimes it returns an array ref denoted by the 'all' in the name of the
method, sometimes an individual object. For example
$gene = $gene_adaptor->fetch_by_stable_id($stable_id);
or
@fp = @{$simple_feature_adaptor->fetch_all_by_Slice($slice)};