--- nfo/perl/libs/Data/Rap/Metadata.pm 2003/02/20 20:04:35 1.2 +++ nfo/perl/libs/Data/Rap/Metadata.pm 2003/03/29 07:13:19 1.3 @@ -1,7 +1,10 @@ ## ---------------------------------------------------------------------- -## $Id: Metadata.pm,v 1.2 2003/02/20 20:04:35 joko Exp $ +## $Id: Metadata.pm,v 1.3 2003/03/29 07:13:19 joko Exp $ ## ---------------------------------------------------------------------- ## $Log: Metadata.pm,v $ +## Revision 1.3 2003/03/29 07:13:19 joko +## better exception handling if target was not found in xml +## ## Revision 1.2 2003/02/20 20:04:35 joko ## renamed methods ## - refactored xml-specific code to Data::Storage::Handler::XML @@ -38,7 +41,7 @@ sub getTargetList { my $self = shift; - $self->log( "Reading Job Database from XML.", 'notice' ); + $self->log( "Reading database of targets (dot) from XML.", 'notice' ); # prepare access to metadata (assure instantiated storage handle) my $mdbe = $self->accessMetadata(); @@ -80,9 +83,24 @@ sub getTargetDetails { my $self = shift; my $target = shift; + + # get metadata for single task from storage my $mdbe = $self->accessMetadata(); $mdbe->sendQuery("*/target[\@name=\"$target\"]"); + + # FIXME: this is wrong behaviour! upper statement should return a proper + # result, which itself (already) has the method 'isEmpty' or similar... + if ($mdbe->isEmpty()) { + $self->log( "Target '$target' not found.", 'notice' ); + return; + } + my $tree = $mdbe->toEasyTree(); + + # trace + #print Dumper($tree); + #exit; + return $tree; }