/[cvs]/nfo/perl/libs/Data/Rap/Metadata.pm
ViewVC logotype

Annotation of /nfo/perl/libs/Data/Rap/Metadata.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (hide annotations)
Thu Feb 20 20:04:35 2003 UTC (21 years, 4 months ago) by joko
Branch: MAIN
Changes since 1.1: +54 -81 lines
renamed methods
- refactored xml-specific code to Data::Storage::Handler::XML

1 joko 1.1 ## ----------------------------------------------------------------------
2 joko 1.2 ## $Id: Metadata.pm,v 1.1 2003/02/18 15:35:49 joko Exp $
3 joko 1.1 ## ----------------------------------------------------------------------
4 joko 1.2 ## $Log: Metadata.pm,v $
5     ## Revision 1.1 2003/02/18 15:35:49 joko
6     ## + initial commit
7     ##
8 joko 1.1 ## ----------------------------------------------------------------------
9    
10    
11     package Data::Rap::Metadata;
12    
13     use strict;
14     use warnings;
15    
16    
17     use Data::Dumper;
18 joko 1.2 use DesignPattern::Object;
19 joko 1.1
20    
21 joko 1.2 sub accessMetadata {
22 joko 1.1 my $self = shift;
23 joko 1.2
24     # create instance of storage object once
25     if (!$self->{__rap}->{metadbengine}) {
26     $self->{__rap}->{metadbengine} =
27     DesignPattern::Object->fromPackage('Data::Storage::Handler::XML', filename => $self->{__rap}->{filename} );
28     }
29    
30     return $self->{__rap}->{metadbengine};
31    
32 joko 1.1 }
33    
34 joko 1.2 sub getTargetList {
35 joko 1.1 my $self = shift;
36    
37     $self->log( "Reading Job Database from XML.", 'notice' );
38    
39 joko 1.2 # prepare access to metadata (assure instantiated storage handle)
40     my $mdbe = $self->accessMetadata();
41    
42     $mdbe->sendQuery("*/target");
43     $mdbe->circumflex('result');
44    
45     # checks
46     if ($mdbe->isEmpty) {
47     $self->log("XML metadata was empty.", 'critical');
48     return;
49     }
50    
51     # trace
52     #print Dumper($self->{buffer});
53     #exit;
54    
55     # behaviour
56     #$self->xml2simplehash();
57     my $tree = $mdbe->toEasyTree();
58 joko 1.1 #return $result;
59    
60 joko 1.2 # trace
61     #print Dumper($tree);
62     #exit;
63    
64     # build result
65     my @targets;
66     foreach my $entry (@{$tree->{content}}) {
67     my $description = $entry->{content}->[0]->{content}->[0]->{content};
68     push @targets, { name => $entry->{attrib}->{name}, description => $description };
69 joko 1.1 }
70    
71 joko 1.2 return \@targets;
72    
73     }
74 joko 1.1
75    
76 joko 1.2 sub getTargetDetails {
77 joko 1.1 my $self = shift;
78 joko 1.2 my $target = shift;
79     my $mdbe = $self->accessMetadata();
80     $mdbe->sendQuery("*/target[\@name=\"$target\"]");
81     my $tree = $mdbe->toEasyTree();
82     return $tree;
83 joko 1.1 }
84    
85    
86     1;
87     __END__

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed