App-SeismicUnixGui
view release on metacpan or search on metacpan
lib/App/SeismicUnixGui/misc/oop_prog_params.pm view on Meta::CPAN
=cut
sub get_a_section {
my ($self) = @_;
my $control = control->new();
my $prog_name = $oop_prog_params->{_prog_name};
my $j = 0;
my @oop_prog_params;
my $ok = 1; #_get_exceptions();
if ($ok) {
$oop_prog_params[$j] =
" \t " . '$' . $prog_name . " \t \t \t \t " . "->clear();";
# same as for values
my $length = scalar @{ $oop_prog_params->{_param_labels_aref} };
my $version = $oop_prog_params->{_prog_version};
for (
my $param_idx = 0, $j = 1 ;
$param_idx < $length ;
$j++, $param_idx++
)
{
my $label = @{ $oop_prog_params->{_param_labels_aref} }[$param_idx];
# print(" 1. oop_prog_params, get_a_section, label = $label \n ");
$label = $control->ors($label);
# print(" 2. oop_prog_params, get_a_section, label = $label \n ");
my $value = @{ $oop_prog_params->{_param_values_aref} }[$param_idx];
# Only, after the label has been cleaned (just above)
_set_label_for_a_suffix($label);
my $suffix = _get_suffix_for_a_label;
# print(" 3. oop_prog_params, get_a_section, suffix=$suffix....\n ");
_set_label_for_a_prefix($label);
my $prefix = _get_prefix_for_a_label();
# print(" 4. oop_prog_params, get_a_section suffix =$prefix \n ");
# $control->set_value($value);
# $control->reset_suffix4loop();
# $control->set_suffix4oop($suffix);
# $value = $control->get_value4oop();
# print(" 4. oop_prog_params, get_a_section value =$value\n ");
if ( length $prefix && length $suffix ) {
# print(" 1. oop_prog_params, get_a_section CASE #1 Both suffix and prefix are present\n ");
# OUTPUT TEXT is set here
$oop_prog_params[$j] =
" \t " . '$'
. $prog_name
. " \t \t \t \t " . '->'
. $label
. '(quotemeta('
. $prefix
. $value . ').'
. $suffix . ');';
# print(" 1. oop_prog_params, get_a_section CASE #1 OUTPUT TEXT: $oop_prog_params[$j] \n");
# print(
# " 1. oop_prog_params, get_a_section CASE #1 suffix=$suffix---prefix=$prefix---value=$value---\n"
# );
# . '.'
}
elsif ( !( length($prefix) ) && length($suffix) ) {
# print(" oop_prog_params, get_a_section CASE #2 No prefix but there is a suffix \n ");
# OUTPUT TEXT is set here
$oop_prog_params[$j] =
" \t " . '$'
. $prog_name
. " \t \t \t \t " . '->'
. $label
. '(quotemeta('
. $value
. $suffix . '));';
}
elsif ( $prefix && !($suffix) ) {
# CASE 3
# print("CASE #3 : oop_prog_params,prefix but no suffix \n");
# OUTPUT TEXT is set here first
# First part is:
$oop_prog_params[$j] =
" \t " . '$'
. $prog_name
. " \t \t \t \t " . '->'
. $label
. '(quotemeta(';
# check for multiple values
my $length = scalar $value;
# print("2. oop_prog_params,get_a,section,value=$value\n");
# detect multiple values, if split by comma
my @sub_values = split( /,/, $value );
# print("oop_prog_params,get_a,section,sub_values:@sub_values\n");
my $num_values = scalar @sub_values;
my $last_index = $num_values - 1;
# print("oop_prog_params,get_a,section,num_values:$num_values\n");
if ( defined $num_values
&& $num_values > 0 )
{ # one value must exist
if ( $num_values >= 2 ) {
my $control = control->new();
# de-tick sub-values for initial case
my $i = 0;
$control->set_infection( $sub_values[$i] );
$sub_values[$i] = $control->get_ticksBgone();
# print("CASE #3A-1: oop_prog_params,get_a,section,de-ticked value:$sub_values[$i]\n");
# PREFIX set here
# Second part is for initial case:
$oop_prog_params[$j] =
$oop_prog_params[$j]
. $prefix . "'"
. $sub_values[$i] . "'" . ".','.";
# print("CASE #3A-1: oop_prog_params,get_a,section, parts 1-2 is $oop_prog_params[$j]\n");
# de-tick sub-values for up-to penultimate case
for ( $i = 1 ; $i < ( $num_values - 1 ) ; $i++ ) {
$control->set_infection( $sub_values[$i] );
$sub_values[$i] = $control->get_ticksBgone();
# PREFIX set here
# Third part is:
$oop_prog_params[$j] =
$oop_prog_params[$j]
. $prefix . "'"
. $sub_values[$i] . "'" . ".','.";
# print("CASE #3A-2: oop_prog_params,get_a,section, parts 1-r is $oop_prog_params[$j]\n");
}
# de-tick sub-values for last case
$control->set_infection( $sub_values[$last_index] );
$sub_values[$last_index] = $control->get_ticksBgone();
# Final part has no comma
$oop_prog_params[$j] =
$oop_prog_params[$j]
. $prefix . "'"
. $sub_values[$i] . "'" . '));';
# print("CASE #3A-3: oop_prog_params,get_a,section,Final part is $oop_prog_params[$j]\n");
}
elsif ( $num_values == 1 ) {
# print(" oop_prog_params, get_a_section CASE #3B, single-value case\n ");
# OUTPUT TEXT is set here
# otherwise the prefix is set here , only ONCE
$oop_prog_params[$j] =
$oop_prog_params[$j] . $prefix . $value . '));';
# print("CASE #3B: oop_prog_params,get_a,section,Complete:$oop_prog_params[$j]\n");
}
else {
# print("oop_prog_params,get_a,section,NADA\n");
}
}
else {
print(
"oop_prog_params,get_a,section,strange values, WARNING\n"
);
}
# CASE _for_
}
elsif ( $suffix && !($prefix) ) {
# print(" Case 4 oop_prog_params, get_a_section = suffix but no prefix\n ");
# OUTPUT TEXT is set here
$oop_prog_params[$j] =
" \t " . '$'
. $prog_name
. " \t \t \t \t " . '->'
. $label
. '(quotemeta('
. $value
. $suffix . '));';
}
elsif ( !($suffix) && !($prefix) ) {
# CASE 5
# print(" oop_prog_params, get_a_section = CASE 5; neither suffix nor prefix\n ");
# OUTPUT TEXT is set here
# $oop_prog_params[$j] =
# " \t " . '$'
# . $prog_name
# . " \t \t \t \t " . '->'
# . $label
# . '("'
# . $value . '");';
$oop_prog_params[$j] =
" \t " . '$'
. $prog_name
. " \t \t \t \t " . '->'
. $label
. '(quotemeta('
. $value . '));';
# print(" oop_prog_params, get_a_section = CASE 5: $oop_prog_params[$j] \n ");
}
else {
# CASE 6
print(
" oop_prog_params, get_a_section prefix and suffixes are weird \n "
);
}
# print(" 2. oop_prog_params, get_a_section, label, value = $oop_prog_params[$j] \n ");
}
$oop_prog_params[$j] =
" \t " . '$'
. "$prog_name " . '['
. $version . '] '
. " \t \t \t " . '= $'
. "$prog_name "
. '->Step();';
return ( \@oop_prog_params );
}
else {
# print(" oop_prog_params, get_a_section, data detected \n ");
$oop_prog_params[0] = " \t " . 'place data here' . " \n ";
return ( \@oop_prog_params );
} # no exceptions
}
sub set_many_param_labels {
my ( $self, $param_labels_href ) = @_;
if ($param_labels_href) {
$oop_prog_params->{_param_labels_aref} =
$param_labels_href->{_prog_param_labels_aref};
# print(" oop_prog_params, set_param_labels, param_labels,
# @{ $oop_prog_params->{_param_labels_aref} } \n ");
}
return ();
}
( run in 0.657 second using v1.01-cache-2.11-cpan-39bf76dae61 )