Diff for /loncom/interface/lonnavmaps.pm between versions 1.145 and 1.146

version 1.145, 2003/02/21 20:05:00 version 1.146, 2003/02/21 21:40:07
Line 1621  sub parmval_real { Line 1621  sub parmval_real {
   
 Thus, this is suitable for cases where you don't want the structure, just a list of all resources. It is also suitable for finding out how many resources match a given description; for this use, if all you want to know is if I<any> resources match the description, the bailout parameter will allow you to avoid potentially expensive enumeration of all matching resources.  Thus, this is suitable for cases where you don't want the structure, just a list of all resources. It is also suitable for finding out how many resources match a given description; for this use, if all you want to know is if I<any> resources match the description, the bailout parameter will allow you to avoid potentially expensive enumeration of all matching resources.
   
   =item * B<hasResources>(map, filterFunc, recursive): Convience method for 
   
    scalar(retrieveResources($map, $filterFunc, $recursive, 1)) > 0
   
   which will tell whether the map has resources matching the description in the filter function.
   
 =cut  =cut
   
 sub getResourceByUrl {  sub getResourceByUrl {
Line 1661  sub retrieveResources { Line 1667  sub retrieveResources {
         return ();          return ();
     }      }
   
     # UNFINISHED... I was checking in getResourceByUrl      # Get an iterator.
       my $it = $self->getIterator($map->map_start(), $map->map_finish(),
                                   !$recursive);
   
       my @resources = ();
   
       # Run down the iterator and collect the resources.
       my $depth = 1;
       $it->next();
       my $curRes = $it->next();
   
       while ($depth > 0) {
           if ($curRes == $it->BEGIN_MAP()) {
               $depth++;
           }
           if ($curRes == $it->END_MAP()) {
               $depth--;
           }
           
           if (ref($curRes)) {
               if (!&$filterFunc($curRes)) {
                   next;
               }
   
               push @resources, $curRes;
   
               if ($bailout) {
                   return @resources;
               }
           }
   
           $curRes = $it->next();
       }
   
       return @resources;
   }
   
   sub hasResource {
       my $self = shift;
       my $map = shift;
       my $filterFunc = shift;
       my $recursive = shift;
       
       return scalar($self->retrieveResources($map, $filterFunc, $recursive, 1)) > 0;
 }  }
   
 1;  1;

Removed from v.1.145  
changed lines
  Added in v.1.146


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>