@@ -22,11 +22,13 @@ use PGUtil qw(not_null);
2222# Optionally append label/response pairs.
2323sub new {
2424 my ($class , $answergroup_label , @responses ) = @_ ;
25+ my $pg = eval (' $main::PG' );
2526 my $self = bless {
2627 answergroup_label => $answergroup_label , # enclosing answergroup that created this responsegroup
2728 response_order => [], # response labels
2829 responses => {}, # response label/response value pair,
2930 # value could be an arrayref in the case of radio or checkbox groups
31+ WARNING_messages => $pg -> {WARNING_messages }
3032 }, $class ;
3133 $self -> append_responses(@responses );
3234 return $self ;
@@ -45,12 +47,11 @@ sub append_response {
4547 ? [ map { [ $_ => $response_value -> {$_ } ] } keys %$response_value ]
4648 : $response_value ;
4749 } else {
48- $self -> internal_debug_message(
49- " PGresponsegroup::append_response error: there is already an answer labeled $response_label " ,
50- caller (2), " \n " );
50+ $self -> warning_message(
51+ qq{ PGresponsegroup::append_response error: There is already an answer labeled "$response_label ".} );
5152 }
5253 } else {
53- $self -> internal_debug_message (' PGresponsegroup::append_response error: undefined or empty response label' );
54+ $self -> warning_message (' PGresponsegroup::append_response error: Undefined or empty response label. ' );
5455 }
5556 return ;
5657}
@@ -82,13 +83,14 @@ sub replace_response {
8283sub extend_response {
8384 my ($self , $response_label , $new_value_key , $selected ) = @_ ;
8485
85- if (defined $self -> {responses }{$response_label }) {
86+ if (defined $response_label && defined $ self-> {responses }{$response_label }) {
8687 my $response_value = $self -> {responses }{$response_label };
8788 $response_value //= [];
8889
8990 if (ref ($response_value ) !~ / ^(HASH|ARRAY)$ / ) {
90- $self -> internal_debug_message(" PGresponsegroup::extend_response: error in extending response " ,
91- ref ($response_value ), $response_value );
91+ $self -> warning_message(' PGresponsegroup::extend_response error: Invalid value type "'
92+ . (ref ($response_value ) || ' scalar' )
93+ . qq{ " for $response_label .} );
9294 $response_value = [ [ $response_value => $selected ] ];
9395 }
9496
@@ -99,7 +101,12 @@ sub extend_response {
99101 $self -> {responses }{$response_label } = $response_value ;
100102 return $response_value ;
101103 } else {
102- $self -> internal_debug_message(" PGresponsegroup::extend_response: response label |$response_label | not defined" );
104+ if (defined $response_label ) {
105+ $self -> warning_message(
106+ qq{ PGresponsegroup::extend_response error: Response label "$response_label " not defined.} );
107+ } else {
108+ $self -> warning_message(' PGresponsegroup::extend_response error: Response label not provided.' );
109+ }
103110 return ;
104111 }
105112}
0 commit comments