3 |
# $Id$ |
# $Id$ |
4 |
# |
# |
5 |
# $Log$ |
# $Log$ |
6 |
|
# Revision 1.39 2003/06/06 11:40:40 jonen |
7 |
|
# fixed bug at 'getFilteredList' |
8 |
|
# |
9 |
# Revision 1.38 2003/05/13 16:38:38 joko |
# Revision 1.38 2003/05/13 16:38:38 joko |
10 |
# problems with "tied" on 5.6.1/win32 |
# problems with "tied" on 5.6.1/win32 |
11 |
# |
# |
529 |
# TODO: is_op? |
# TODO: is_op? |
530 |
# dispatch un-common operators if exists |
# dispatch un-common operators if exists |
531 |
if($filter->{op} eq "ref") { |
if($filter->{op} eq "ref") { |
532 |
push @tfilters, 'ref($remote->{' . $filter->{key} . '})' . " eq '$filter->{val}'"; |
# do nothing, results will be filtered later cause 'tangram-filter' doesn't support 'ref' query |
533 |
|
#print "Filter->op eq 'ref'.\n"; |
534 |
|
#push @tfilters, 'ref($remote->{' . $filter->{key} . '})' . " eq '$filter->{val}'"; |
535 |
} else { |
} else { |
536 |
# HACK: build eval-string (sorry) to get filtered list - please give advice here |
# HACK: build eval-string (sorry) to get filtered list - please give advice here |
537 |
push @tfilters, '$remote->{' . $filter->{key} . '}' . " $filter->{op} '$filter->{val}'"; |
push @tfilters, '$remote->{' . $filter->{key} . '}' . " $filter->{op} '$filter->{val}'"; |
557 |
@results = eval($evalstring); |
@results = eval($evalstring); |
558 |
die $@ if $@; |
die $@ if $@; |
559 |
|
|
560 |
|
|
561 |
|
# filter results |
562 |
|
if($filters->[0]->{op} eq "ref") { |
563 |
|
#print "Filter->op eq 'ref'.\n"; |
564 |
|
my $att_name = $filters->[0]->{key}; |
565 |
|
my $att_val = $filters->[0]->{val}; |
566 |
|
my @filtered; |
567 |
|
foreach(@results) { |
568 |
|
if(ref($_->{$att_name}) eq $att_val) { |
569 |
|
push @filtered, $_; |
570 |
|
} |
571 |
|
} |
572 |
|
@results = @filtered; |
573 |
|
} |
574 |
|
|
575 |
|
#print "results: " . Dumper(\@results); |
576 |
|
|
577 |
return \@results; |
return \@results; |
578 |
} |
} |
579 |
|
|