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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (show 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 ## ----------------------------------------------------------------------
2 ## $Id: Metadata.pm,v 1.1 2003/02/18 15:35:49 joko Exp $
3 ## ----------------------------------------------------------------------
4 ## $Log: Metadata.pm,v $
5 ## Revision 1.1 2003/02/18 15:35:49 joko
6 ## + initial commit
7 ##
8 ## ----------------------------------------------------------------------
9
10
11 package Data::Rap::Metadata;
12
13 use strict;
14 use warnings;
15
16
17 use Data::Dumper;
18 use DesignPattern::Object;
19
20
21 sub accessMetadata {
22 my $self = shift;
23
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 }
33
34 sub getTargetList {
35 my $self = shift;
36
37 $self->log( "Reading Job Database from XML.", 'notice' );
38
39 # 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 #return $result;
59
60 # 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 }
70
71 return \@targets;
72
73 }
74
75
76 sub getTargetDetails {
77 my $self = shift;
78 my $target = shift;
79 my $mdbe = $self->accessMetadata();
80 $mdbe->sendQuery("*/target[\@name=\"$target\"]");
81 my $tree = $mdbe->toEasyTree();
82 return $tree;
83 }
84
85
86 1;
87 __END__

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