BioPerl

 view release on metacpan or  search on metacpan

Bio/DB/Expression.pm  view on Meta::CPAN


=head1 APPENDIX

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

=cut


# Let the code begin...


package Bio::DB::Expression;
use strict;
use base qw(Bio::Root::HTTPget Bio::Root::Root);
use Bio::Root::HTTPget;
our $DefaultSource = 'geo';

=head2 new()

 Usage   : my $obj = Bio::DB::Expression->new();
 Function: Builds a new Bio::DB::Expression object 
 Returns : an instance of Bio::DB::Expression
 Args    :


=cut

sub new {
  my($class,@args) = @_;

  if( $class =~ /Bio::DB::Expression::(\S+)/ ) {
    my ($self) = $class->SUPER::new(@args);
    $self->_initialize(@args);
    return $self;
  } else {
    my %param = @args;
    @param{ map { lc $_ } keys %param } = values %param; # lowercase keys
    my $source = $param{'-source'} || $DefaultSource;

    $source = "\L$source";	# normalize capitalization to lower case

    # normalize capitalization
    return unless( $class->_load_expression_module($source) );
    return "Bio::DB::Expression::$source"->new(@args);
  }
}

=head2 get_platforms()

 Usage   :
 Function:
 Example :
 Returns : a list of Bio::Expression::Platform objects
 Args    :

=cut

sub get_platforms {
  my ($self,@args) = @_;
  $self->throw_not_implemented();
}

=head2 get_samples()

 Usage   :
 Function:
 Example :
 Returns : a list of Bio::Expression::Sample objects
 Args    :

=cut

sub get_samples {
  my ($self,@args) = @_;
  $self->throw_not_implemented();
}

=head2 get_contacts()

 Usage   :
 Function:
 Example :
 Returns : a list of Bio::Expression::Contact objects
 Args    :

=cut

sub get_contacts {
  my ($self,@args) = @_;
  $self->throw_not_implemented();
}

=head2 get_datasets()

 Usage   :
 Function:
 Example :
 Returns : a list of Bio::Expression::DataSet objects
 Args    :

=cut

sub get_datasets {
  my ($self,@args) = @_;
  $self->throw_not_implemented();
}




=head2 _load_expression_module

 Title   : _load_expression_module
 Usage   : *INTERNAL Bio::DB::Expression stuff*
 Function: Loads up (like use) a module at run time on demand
 Example :
 Returns :
 Args    :

=cut

sub _load_expression_module {
    my ($self, $source) = @_;
    my $module = "Bio::DB::Expression::" . $source;
    my $ok;

    eval { $ok = $self->_load_module($module) };
    if ( $@ ) {
	print STDERR $@;
	print STDERR <<END;
$self: $source cannot be found
Exception $@
For more information about the Bio::DB::Expression system please see
the Bio::DB::Expression docs.  This includes ways of checking for 
formats at compile time, not run time.
END
  ;
    }
    return $ok;
}


1;



( run in 0.993 second using v1.01-cache-2.11-cpan-437f7b0c052 )