Bio-VertRes-Config
view release on metacpan or search on metacpan
lib/Bio/VertRes/Config/CommandLine/StudyNameSearch.pm view on Meta::CPAN
package Bio::VertRes::Config::CommandLine::StudyNameSearch;
# ABSTRACT: Prevent a study name from being registered in two different databases
use Moose;
use Bio::VertRes::Config::RegisterStudy;
with 'Bio::VertRes::Config::Pipelines::Roles::RootDatabaseLookup';
has 'default_database_name' => ( is => 'ro', isa => 'Str', required => 1 );
has 'study_name' => ( is => 'ro', isa => 'Str', required => 1 );
has 'config_base' => ( is => 'ro', isa => 'Str', required => 1 );
sub get_study_database_name_or_default_if_not_found {
my ($self) = @_;
#Â In the normal case the study will be in the default database, so check it first to save on IO
if (
Bio::VertRes::Config::RegisterStudy->new(
database => $self->default_database_name,
study_name => $self->study_name,
config_base => $self->config_base
)->is_study_in_file_already == 1
)
{
return $self->default_database_name;
}
for my $database_name ( sort keys( %{$self->non_standard_databases} ) ) {
if (
Bio::VertRes::Config::RegisterStudy->new(
database => $database_name,
study_name => $self->study_name,
config_base => $self->config_base
)->is_study_in_file_already == 1
)
{
return $database_name;
}
}
return $self->default_database_name;
}
__PACKAGE__->meta->make_immutable;
no Moose;
1;
__END__
=pod
=head1 NAME
Bio::VertRes::Config::CommandLine::StudyNameSearch - Prevent a study name from being registered in two different databases
=head1 VERSION
version 1.133090
=head1 SYNOPSIS
Prevent a study name from being registered in two different databases.
use Bio::VertRes::Config::CommandLine::StudyNameSearch;
my $obj = Bio::VertRes::Config::CommandLine::StudyNameSearch->new(
default_database_name => 'pathogen_rnd_track',
config_base => $destination_directory,
study_name => 'Unseen study'
);
$obj->get_study_database_name_or_default_if_not_found;
=head1 METHODS
=head2 get_study_database_name_or_default_if_not_found
Lookup the study name in all the standard databases. If its found then return that database. If its a new study return the default.
=head1 AUTHOR
Andrew J. Page <ap13@sanger.ac.uk>
=head1 COPYRIGHT AND LICENSE
This software is Copyright (c) 2013 by Wellcome Trust Sanger Institute.
This is free software, licensed under:
The GNU General Public License, Version 3, June 2007
=cut
( run in 1.630 second using v1.01-cache-2.11-cpan-39bf76dae61 )