Changeset 2516
- Timestamp:
- 03/23/22 18:45:58 (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Objects.pm
r2506 r2516 308 308 } 309 309 310 311 sub _deref_attribute { 312 my ( $self, $attribute ) = @_; 313 314 my ( $derefAttr, $target ) = $attribute =~ /([^.]+)(.*)?/; 315 316 my $name = $self->get_c_field( $derefAttr ) or return; 317 318 if ( $target ) { 319 my $Attr = $self->attribute( $derefAttr ); 320 if ( my $otype = $Attr->reference ) { 321 my @values; 322 foreach my $n ( ref $name ? @$name : $name ) { 323 my $obj = $self->base->get_object( $otype, $n ) or return; 324 my $res = $obj->_deref_attribute( $target ); 325 push(@values, grep { $_ } (ref $res ? @$res : $res)); 326 } 327 return scalar(@values) <= 1 ? $values[0] : \@values 328 } 329 } else { 330 return $name; 331 } 332 333 } 310 334 311 335 =head2 queryformat ($fmt) … … 333 357 $val = $self->base->QFunc($1, $2); 334 358 } else { 335 $val = $self-> get_c_field($2);359 $val = $self->_deref_attribute($2); 336 360 } 337 361
Note: See TracChangeset
for help on using the changeset viewer.