/[suikacvs]/messaging/manakai/lib/Message/DOM/TreeStore.pm
Suika

Contents of /messaging/manakai/lib/Message/DOM/TreeStore.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.10 - (hide annotations) (download)
Sat Dec 30 15:43:00 2006 UTC (19 years, 7 months ago) by wakaba
Branch: MAIN
Changes since 1.9: +6 -24 lines
*** empty log message ***

1 wakaba 1.1 #!/usr/bin/perl
2     ## This file is automatically generated
3 wakaba 1.10 ## at 2006-12-30T14:41:15+00:00,
4     ## from file "../DOM/TreeStore.dis",
5 wakaba 1.1 ## module <http://suika.fam.cx/~wakaba/archive/2004/8/18/manakai-dom#ManakaiDOM.TreeStore>,
6 wakaba 1.9 ## for <http://suika.fam.cx/~wakaba/archive/2004/8/18/manakai-dom#all>.
7 wakaba 1.1 ## Don't edit by hand!
8     use strict;
9     require Message::DOM::DOMCore;
10     package Message::DOM::TreeStore;
11 wakaba 1.10 our $VERSION = 20061230.1441;
12 wakaba 1.9 package Message::DOM::IF::DOMImplementationTreeStore;
13 wakaba 1.10 our $VERSION = 20061230.1441;
14 wakaba 1.1 package Message::DOM::TreeStore::ManakaiDOMImplementationTreeStore;
15 wakaba 1.10 our $VERSION = 20061230.1441;
16 wakaba 1.9 push our @ISA, 'Message::DOM::IF::DOMImplementation',
17     'Message::DOM::IF::DOMImplementation',
18     'Message::DOM::IF::DOMImplementationTreeStore';
19 wakaba 1.3 push @Message::DOM::DOMCore::ManakaiDOMImplementation::ISA, q<Message::DOM::TreeStore::ManakaiDOMImplementationTreeStore> unless Message::DOM::DOMCore::ManakaiDOMImplementation->isa (q<Message::DOM::TreeStore::ManakaiDOMImplementationTreeStore>);
20 wakaba 1.1 sub create_storable_object_from_node ($$) {
21     my ($self, $in) = @_;
22     my $r;
23    
24     {
25    
26     if
27     ({
28    
29     9
30     =>
31     1
32     ,
33    
34     11
35     =>
36     1
37     ,
38    
39     1
40     =>
41     1
42     ,
43    
44     2
45     =>
46     1
47     ,
48    
49     3
50     =>
51     1
52     ,
53    
54     4
55     =>
56     1
57     ,
58     }->{$in->
59     node_type
60     }) {
61     my @target = ([$in, # node
62    
63     undef
64     ]); # origin
65    
66     while (@target) {
67     my $target = shift @target;
68     my $tnt = $target->[0]->
69     node_type
70     ;
71     if ($tnt ==
72     1
73     ) {
74     my $v = {};
75    
76 wakaba 1.7 my $pv = ${$target->[0]}->{
77     'ns'
78     };
79 wakaba 1.1 $v->{namespace_uri} = $pv if defined $pv;
80    
81 wakaba 1.7 $pv = ${$target->[0]}->{
82     'ln'
83     };
84 wakaba 1.1 $v->{local_name} = $pv;
85    
86 wakaba 1.7 $pv = ${$target->[0]}->{
87     'pfx'
88     };
89 wakaba 1.1 $v->{prefix} = $pv if defined $pv;
90    
91     for (@{$target->[0]->
92     child_nodes
93     }) {
94     push @target, [$_, $v];
95     }
96     for (@{$target->[0]->
97     attributes
98     }) {
99     push @target, [$_, $v];
100     }
101     if (defined $target->[1]) {
102     push @{$target->[1]->{child_nodes} ||= []}, $v;
103     } else {
104     $r = $v unless defined $r;
105     }
106     } elsif ($tnt ==
107     2
108     ) {
109     my $v = {
110     value => \ $target->[0]->
111     value
112     ,
113     };
114    
115 wakaba 1.7 my $pv = ${$target->[0]}->{
116     'ns'
117     };
118 wakaba 1.1 $v->{namespace_uri} = $pv if defined $pv;
119    
120 wakaba 1.7 $pv = ${$target->[0]}->{
121     'ln'
122     };
123 wakaba 1.1 $v->{local_name} = $pv;
124    
125 wakaba 1.7 $pv = ${$target->[0]}->{
126     'pfx'
127     };
128 wakaba 1.1 $v->{prefix} = $pv if defined $pv;
129    
130     if (defined $target->[1]) {
131     push @{$target->[1]->{attributes} ||= []}, $v;
132     } else {
133     $r = $v unless defined $r;
134     }
135     } elsif ($tnt ==
136     3 or
137    
138     $tnt ==
139     4
140     ) {
141     my $v = {};
142 wakaba 1.7 $v->{data} = ${$target->[0]}->{
143     'con'
144     };
145 wakaba 1.1
146     if (defined $target->[1]) {
147     push @{$target->[1]->{child_nodes} ||= []}, $v;
148     } else {
149     $r = $v unless defined $r;
150     }
151     } elsif ($tnt ==
152     9
153     ) {
154     my $v = {
155     xml_version => $target->[0]->
156     xml_version
157     ,
158     };
159    
160     for (@{$target->[0]->
161     child_nodes
162     }) {
163     push @target, [$_, $v];
164     }
165     $r = $v unless defined $r;
166     } elsif ($tnt ==
167     11
168     ) {
169     my $v = {};
170    
171     for (@{$target->[0]->
172     child_nodes
173     }) {
174     push @target, [$_, $v];
175     }
176     $r = $v unless defined $r;
177     } elsif ($tnt ==
178     5
179     ) {
180     for (@{$target->[0]->
181     child_nodes
182     }) {
183     push @target, [$_, $target->[1]];
184     }
185     }
186     }
187     } else {
188    
189     report Message::DOM::DOMCore::ManakaiDOMException -object => $self, '-type' => 'NOT_SUPPORTED_ERR', 'http://suika.fam.cx/~wakaba/archive/2004/8/4/manakai-dom-exception#method' => 'create_storable_object_from_node', 'http://suika.fam.cx/~wakaba/archive/2004/8/4/manakai-dom-exception#subtype' => 'http://suika.fam.cx/~wakaba/archive/2004/8/18/dom-core#CLONE_NODE_TYPE_NOT_SUPPORTED_ERR', 'http://suika.fam.cx/~wakaba/archive/2004/8/4/manakai-dom-exception#class' => 'Message::DOM::TreeStore::ManakaiDOMImplementationTreeStore', 'http://suika.fam.cx/~wakaba/archive/2004/8/4/manakai-dom-exception#param-name' => 'in', 'http://suika.fam.cx/~wakaba/archive/2004/8/18/dom-core#node' => $in;
190    
191     ;
192     }
193    
194    
195     }
196     $r}
197     sub create_node_from_storable_object ($$;$) {
198     my ($self, $in, $od) = @_;
199     my $r;
200    
201     {
202    
203    
204     {
205    
206     local $Error::Depth = $Error::Depth + 1;
207    
208     {
209    
210    
211    
212     $od = $self->
213     create_document
214     ;
215     my $orig_strict = $od->
216     strict_error_checking
217     ;
218     $od->
219     strict_error_checking
220     (
221     0
222     );
223    
224     my @target = ([$in,
225    
226     undef
227     , # parent node
228    
229     undef
230     ]); # owner element
231     while (@target) {
232     my $target = shift @target;
233     if (defined $target->[0]->{local_name}) {
234     if (defined $target->[0]->{value}) {
235     # Attribute
236     my $node = $od->
237     create_attribute_ns
238    
239     ($target->[0]->{namespace_uri},
240     [$target->[0]->{prefix},
241     $target->[0]->{local_name}]);
242     $node->
243     manakai_append_text
244     ($target->[0]->{value});
245     if (defined $target->[2]) {
246     $target->[2]->
247     set_attribute_node_ns
248     ($node);
249     } else {
250     $r = $node unless defined $r;
251     }
252     } else {
253     # Element
254     my $node = $od->
255     create_element_ns
256    
257     ($target->[0]->{namespace_uri},
258     [$target->[0]->{prefix},
259     $target->[0]->{local_name}]);
260     for (@{ref $target->[0]->{child_nodes} eq 'ARRAY'
261     ? $target->[0]->{child_nodes} : []}) {
262     push @target, [$_, $node];
263     }
264     for (@{ref $target->[0]->{attributes} eq 'ARRAY'
265     ? $target->[0]->{attributes} : []}) {
266     push @target, [$_,
267     undef
268     , $node];
269     }
270     if (defined $target->[1]) {
271     $target->[1]->
272     append_child
273     ($node);
274     } else {
275     $r = $node unless defined $r;
276     }
277     }
278     } elsif (defined $target->[0]->{data}) {
279     # Text
280     if (defined $target->[1]) {
281     $target->[1]->
282     manakai_append_text
283    
284     ($target->[0]->{data});
285     } elsif (not defined $r) {
286     $r = $od->
287     create_text_node
288     ('');
289     $r->
290     manakai_append_text
291     ($target->[0]->{data});
292     }
293     } elsif (defined $target->[0]->{xml_version}) {
294     # Document
295     my $node = $self->
296     create_document
297     ;
298     $node->
299     strict_error_checking
300     (
301     0
302     );
303     $node->
304     dom_config
305    
306     ->
307     set_parameter
308    
309     (
310     'http://suika.fam.cx/www/2006/dom-config/strict-document-children'
311     =>
312     0
313     );
314     $node->
315     xml_version
316     ($target->[0]->{xml_version});
317     for (@{ref $target->[0]->{child_nodes} eq 'ARRAY'
318     ? $target->[0]->{child_nodes} : []}) {
319     push @target, [$_, $node];
320     }
321     unless (defined $r) {
322     $r = $node;
323     $od = $node;
324     $orig_strict =
325     1
326     ;
327     }
328     } else {
329     # Document fragment
330     unless (defined $r) {
331     $r = $od->
332     create_document_fragment
333     ;
334     for (@{ref $target->[0]->{child_nodes} eq 'ARRAY'
335     ? $target->[0]->{child_nodes} : []}) {
336     push @target, [$_, $r];
337     }
338     }
339     }
340     }
341     $od->
342     strict_error_checking
343     ($orig_strict);
344     if ($r->
345     node_type
346     ==
347     9
348     ) {
349     $r->
350     dom_config
351    
352     ->
353     set_parameter
354    
355     (
356     'http://suika.fam.cx/www/2006/dom-config/strict-document-children'
357     =>
358     undef
359     );
360     }
361    
362    
363    
364     }
365    
366    
367     ;}
368    
369     ;
370    
371    
372     }
373     $r}
374     $Message::DOM::DOMFeature::ClassInfo->{q<Message::DOM::TreeStore::ManakaiDOMImplementationTreeStore>}->{has_feature} = {'',
375     {'',
376     '1'},
377 wakaba 1.3 'http://suika.fam.cx/www/2006/feature/min',
378     {'',
379     '1'},
380     'http://suika.fam.cx/www/2006/feature/treestore',
381     {'',
382     '1'},
383     'http://suika.fam.cx/~wakaba/archive/2004/8/18/manakai-dom#minimum',
384     {'',
385     '1'},
386 wakaba 1.1 'xml',
387     {'',
388     '1'},
389     'xmlversion',
390     {'',
391     '1'}};
392 wakaba 1.10 $Message::DOM::ClassPoint{q<Message::DOM::TreeStore::ManakaiDOMImplementationTreeStore>} = 0;
393 wakaba 1.9 for ($Message::DOM::IF::DOMImplementation::){}
394 wakaba 1.1 ## License: <http://suika.fam.cx/~wakaba/archive/2004/8/18/license#Perl+MPL>
395     1;

[email protected]
ViewVC Help
Powered by ViewVC 1.1.24