/[cvs]/nfo/perl/libs/Data/Storage/Handler/AutoSymbol.pm
ViewVC logotype

Annotation of /nfo/perl/libs/Data/Storage/Handler/AutoSymbol.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (hide annotations)
Tue May 13 08:02:13 2003 UTC (21 years, 1 month ago) by joko
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +58 -51 lines
removed xml stuff

1 joko 1.1 ## -------------------------------------------------------------------------
2 joko 1.2 ## $Id: AutoSymbol.pm,v 1.1 2003/04/18 17:20:21 joko Exp $
3 joko 1.1 ## -------------------------------------------------------------------------
4 joko 1.2 ## $Log: AutoSymbol.pm,v $
5     ## Revision 1.1 2003/04/18 17:20:21 joko
6     ## intial commit
7     ##
8 joko 1.1 ## -------------------------------------------------------------------------
9    
10    
11 joko 1.2 =pod
12    
13     =head1 DESCRIPTION
14    
15     Should handle primitives (scalar, HASH, ARRAY) transparently.
16     After that: Enhance to FILEHANDLE and/or OBJECT.
17    
18    
19     =cut
20    
21    
22 joko 1.1 package Data::Storage::Handler::AutoSymbol;
23    
24     use strict;
25     use warnings;
26    
27     use base qw(
28     DesignPattern::Object
29     DesignPattern::Logger
30     Data::Storage::Handler::Abstract
31     );
32    
33    
34     use Data::Dumper;
35 joko 1.2 use Data::Storage::Result::Hash;
36 joko 1.1
37    
38 joko 1.2 sub getChildNodes {
39 joko 1.1 my $self = shift;
40    
41 joko 1.2 my $storage = $self->{reference};
42 joko 1.1
43 joko 1.2 my $nodes;
44     if (not ref $storage) {
45     $nodes = [ $storage ];
46     } elsif (ref $storage eq 'HASH') {
47     $nodes = [ sort keys %$storage ];
48 joko 1.1 }
49    
50 joko 1.2 return $nodes;
51    
52     }
53    
54     sub sendQuery {
55     my $self = shift;
56     my $query = shift;
57     my $options = shift;
58 joko 1.1
59 joko 1.2 #print "query: ", Dumper($query);
60 joko 1.1
61 joko 1.2 my $slot;
62     # by list
63     #$slot = $query->{node};
64     # by item
65     $slot = $query->{options}->{GUID};
66    
67     my $storage = $self->{reference};
68    
69     my $payload;
70     if (not ref $storage) {
71     $payload = $storage;
72     } elsif (ref $storage eq 'HASH') {
73     if ($slot) {
74     # TODO: enhance using ref_slot
75     $payload = $storage->{$slot};
76     } else {
77     $payload = $storage;
78 joko 1.1 }
79 joko 1.2 }
80    
81     #print "payload: ", Dumper($payload);
82     #return;
83 joko 1.1
84 joko 1.2 if ($payload) {
85     my $result = Data::Storage::Result::Hash->new( RESULTHANDLE => $payload );
86     return $result;
87     }
88 joko 1.1
89     }
90    
91     sub getResult_tmp {
92     my $self = shift;
93     return $self->{buffer};
94     }
95    
96     sub isEmpty_tmp {
97     my $self = shift;
98     return not defined $self->{buffer};
99     }
100    
101    
102     1;
103     __END__

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