my $self = shift @_;
if(@_) {
$self->{'_condition_analysis_url'} = shift @_;
if( $self->{'_condition_analysis'} ) {
# warn "setting condition_analysis_url() in an object that had to_analysis() defined";
$self->{'_condition_analysis'} = undef;
}
} elsif( !$self->{'_condition_analysis_url'} and my $condition_analysis=$self->{'_condition_analysis'} ) {
# if the 'condition' and 'ctrled' share the same adaptor, then use a simple logic_name
# for the URL rather than a full network distributed URL
# FIXME: the following block could be incapsulated in Analysis->url() and NakedTable->url()
my $ref_analysis_adaptor = $self->ctrled_analysis && $self->ctrled_analysis->adaptor;
if( $ref_analysis_adaptor and ($ref_analysis_adaptor == $condition_analysis->adaptor)) {
$self->{'_condition_analysis_url'} = $condition_analysis->logic_name;
} else {
$self->{'_condition_analysis_url'} = $condition_analysis->url($ref_analysis_adaptor->db);
}
# warn "Lazy-loaded condition_analysis_url\n";
}
return $self->{'_condition_analysis_url'};
}