/[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.1 - (hide annotations) (download)
Tue Aug 15 03:54:37 2006 UTC (19 years, 11 months ago) by wakaba
Branch: MAIN
++ manakai/t/ChangeLog	15 Aug 2006 03:53:40 -0000
2006-08-15  Wakaba  <wakaba@suika.fam.cx>

	* Makefile (util-dis-Value.t): New test.

++ manakai/lib/Message/Util/ChangeLog	15 Aug 2006 03:50:57 -0000
2006-08-15  Wakaba  <wakaba@suika.fam.cx>

	* Makefile (.discore-all.pm): |../DOM/TreeStore.pm| is added
	to the list.

++ manakai/lib/Message/Util/DIS/ChangeLog	15 Aug 2006 03:53:08 -0000
2006-08-15  Wakaba  <wakaba@suika.fam.cx>

	* Value.dis (Require): References to |MDOM:TreeCore|
	and |MDOM:TreeStore| modules are added.
	(ManakaiDISImplementationValue): Now it
	extends the |ManakaiDOMImplementationTreeStore| class.
	(ValueFeature10): Now it requires the |TSFeature30| feature.
	(createDVXMLValue): New method.
	(createXMLValue): New code.
	(DVXMLValue): New interface.

++ manakai/lib/Message/DOM/ChangeLog	15 Aug 2006 03:50:21 -0000
2006-08-15  Wakaba  <wakaba@suika.fam.cx>

	* TreeStore.pm: Added to the CVS repository
	to enable for the dis database to contain XML
	fragments.

	* Makefile (DOT_CORE_DIS_FILES): |TreeStore.pm| is added.

	* TreeStore.dis (Namespace): Namespace URI was incorrect.

1 wakaba 1.1 #!/usr/bin/perl
2     ## This file is automatically generated
3     ## at 2006-06-18T03:17:14+00:00,
4     ## from file "../DOM/TreeStore.dis",
5     ## module <http://suika.fam.cx/~wakaba/archive/2004/8/18/manakai-dom#ManakaiDOM.TreeStore>,
6     ## for <http://suika.fam.cx/~wakaba/archive/2004/8/18/manakai-dom#ManakaiDOMLatest>.
7     ## Don't edit by hand!
8     use strict;
9     require Message::DOM::DOMCore;
10     package Message::DOM::TreeStore;
11     our $VERSION = 20060618.0317;
12     package Message::DOM::IFLatest::DOMImplementationTreeStore;
13     our $VERSION = 20060618.0317;
14     package Message::DOM::TreeStore::ManakaiDOMImplementationTreeStore;
15     our $VERSION = 20060618.0317;
16     push our @ISA, 'Message::DOM::DOMCore::ManakaiDOMImplementation',
17     'Message::DOM::IF::DOMImplementation',
18     'Message::DOM::IF::DOMImplementationTreeStore',
19     'Message::DOM::IFLatest::DOMImplementation',
20     'Message::DOM::IFLatest::DOMImplementationTreeStore';
21     sub create_storable_object_from_node ($$) {
22     my ($self, $in) = @_;
23     my $r;
24    
25     {
26    
27     if
28     ({
29    
30     9
31     =>
32     1
33     ,
34    
35     11
36     =>
37     1
38     ,
39    
40     1
41     =>
42     1
43     ,
44    
45     2
46     =>
47     1
48     ,
49    
50     3
51     =>
52     1
53     ,
54    
55     4
56     =>
57     1
58     ,
59     }->{$in->
60     node_type
61     }) {
62     my @target = ([$in, # node
63    
64     undef
65     ]); # origin
66    
67     while (@target) {
68     my $target = shift @target;
69     my $tnt = $target->[0]->
70     node_type
71     ;
72     if ($tnt ==
73     1
74     ) {
75     my $v = {};
76    
77     my $pv;
78    
79    
80     {
81    
82    
83     $pv = $target->[0]->{
84     'b'
85     }->{${$target->[0]->{
86     'id'
87     }}}
88     ->{'ns'};
89    
90    
91     }
92    
93     ;
94     $v->{namespace_uri} = $pv if defined $pv;
95    
96    
97    
98     {
99    
100    
101     $pv = $target->[0]->{
102     'b'
103     }->{${$target->[0]->{
104     'id'
105     }}}
106     ->{'ln'};
107    
108    
109     }
110    
111     ;
112     $v->{local_name} = $pv;
113    
114    
115    
116     {
117    
118    
119     $pv = $target->[0]->{
120     'b'
121     }->{${$target->[0]->{
122     'id'
123     }}}
124     ->{'pfx'};
125    
126    
127     }
128    
129     ;
130     $v->{prefix} = $pv if defined $pv;
131    
132     for (@{$target->[0]->
133     child_nodes
134     }) {
135     push @target, [$_, $v];
136     }
137     for (@{$target->[0]->
138     attributes
139     }) {
140     push @target, [$_, $v];
141     }
142     if (defined $target->[1]) {
143     push @{$target->[1]->{child_nodes} ||= []}, $v;
144     } else {
145     $r = $v unless defined $r;
146     }
147     } elsif ($tnt ==
148     2
149     ) {
150     my $v = {
151     value => \ $target->[0]->
152     value
153     ,
154     };
155    
156     my $pv;
157    
158    
159     {
160    
161    
162     $pv = $target->[0]->{
163     'b'
164     }->{${$target->[0]->{
165     'id'
166     }}}
167     ->{'ns'};
168    
169    
170     }
171    
172     ;
173     $v->{namespace_uri} = $pv if defined $pv;
174    
175    
176    
177     {
178    
179    
180     $pv = $target->[0]->{
181     'b'
182     }->{${$target->[0]->{
183     'id'
184     }}}
185     ->{'ln'};
186    
187    
188     }
189    
190     ;
191     $v->{local_name} = $pv;
192    
193    
194    
195     {
196    
197    
198     $pv = $target->[0]->{
199     'b'
200     }->{${$target->[0]->{
201     'id'
202     }}}
203     ->{'pfx'};
204    
205    
206     }
207    
208     ;
209     $v->{prefix} = $pv if defined $pv;
210    
211     if (defined $target->[1]) {
212     push @{$target->[1]->{attributes} ||= []}, $v;
213     } else {
214     $r = $v unless defined $r;
215     }
216     } elsif ($tnt ==
217     3 or
218    
219     $tnt ==
220     4
221     ) {
222     my $v = {};
223    
224    
225     {
226    
227    
228     $v->{data} = $target->[0]->{
229     'b'
230     }->{${$target->[0]->{
231     'id'
232     }}}
233     ->{'con'};
234    
235    
236     }
237    
238     ;
239    
240     if (defined $target->[1]) {
241     push @{$target->[1]->{child_nodes} ||= []}, $v;
242     } else {
243     $r = $v unless defined $r;
244     }
245     } elsif ($tnt ==
246     9
247     ) {
248     my $v = {
249     xml_version => $target->[0]->
250     xml_version
251     ,
252     };
253    
254     for (@{$target->[0]->
255     child_nodes
256     }) {
257     push @target, [$_, $v];
258     }
259     $r = $v unless defined $r;
260     } elsif ($tnt ==
261     11
262     ) {
263     my $v = {};
264    
265     for (@{$target->[0]->
266     child_nodes
267     }) {
268     push @target, [$_, $v];
269     }
270     $r = $v unless defined $r;
271     } elsif ($tnt ==
272     5
273     ) {
274     for (@{$target->[0]->
275     child_nodes
276     }) {
277     push @target, [$_, $target->[1]];
278     }
279     }
280     }
281     } else {
282    
283     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;
284    
285     ;
286     }
287    
288    
289     }
290     $r}
291     sub create_node_from_storable_object ($$;$) {
292     my ($self, $in, $od) = @_;
293     my $r;
294    
295     {
296    
297    
298     {
299    
300     local $Error::Depth = $Error::Depth + 1;
301    
302     {
303    
304    
305    
306     $od = $self->
307     create_document
308     ;
309     my $orig_strict = $od->
310     strict_error_checking
311     ;
312     $od->
313     strict_error_checking
314     (
315     0
316     );
317    
318     my @target = ([$in,
319    
320     undef
321     , # parent node
322    
323     undef
324     ]); # owner element
325     while (@target) {
326     my $target = shift @target;
327     if (defined $target->[0]->{local_name}) {
328     if (defined $target->[0]->{value}) {
329     # Attribute
330     my $node = $od->
331     create_attribute_ns
332    
333     ($target->[0]->{namespace_uri},
334     [$target->[0]->{prefix},
335     $target->[0]->{local_name}]);
336     $node->
337     manakai_append_text
338     ($target->[0]->{value});
339     if (defined $target->[2]) {
340     $target->[2]->
341     set_attribute_node_ns
342     ($node);
343     } else {
344     $r = $node unless defined $r;
345     }
346     } else {
347     # Element
348     my $node = $od->
349     create_element_ns
350    
351     ($target->[0]->{namespace_uri},
352     [$target->[0]->{prefix},
353     $target->[0]->{local_name}]);
354     for (@{ref $target->[0]->{child_nodes} eq 'ARRAY'
355     ? $target->[0]->{child_nodes} : []}) {
356     push @target, [$_, $node];
357     }
358     for (@{ref $target->[0]->{attributes} eq 'ARRAY'
359     ? $target->[0]->{attributes} : []}) {
360     push @target, [$_,
361     undef
362     , $node];
363     }
364     if (defined $target->[1]) {
365     $target->[1]->
366     append_child
367     ($node);
368     } else {
369     $r = $node unless defined $r;
370     }
371     }
372     } elsif (defined $target->[0]->{data}) {
373     # Text
374     if (defined $target->[1]) {
375     $target->[1]->
376     manakai_append_text
377    
378     ($target->[0]->{data});
379     } elsif (not defined $r) {
380     $r = $od->
381     create_text_node
382     ('');
383     $r->
384     manakai_append_text
385     ($target->[0]->{data});
386     }
387     } elsif (defined $target->[0]->{xml_version}) {
388     # Document
389     my $node = $self->
390     create_document
391     ;
392     $node->
393     strict_error_checking
394     (
395     0
396     );
397     $node->
398     dom_config
399    
400     ->
401     set_parameter
402    
403     (
404     'http://suika.fam.cx/www/2006/dom-config/strict-document-children'
405     =>
406     0
407     );
408     $node->
409     xml_version
410     ($target->[0]->{xml_version});
411     for (@{ref $target->[0]->{child_nodes} eq 'ARRAY'
412     ? $target->[0]->{child_nodes} : []}) {
413     push @target, [$_, $node];
414     }
415     unless (defined $r) {
416     $r = $node;
417     $od = $node;
418     $orig_strict =
419     1
420     ;
421     }
422     } else {
423     # Document fragment
424     unless (defined $r) {
425     $r = $od->
426     create_document_fragment
427     ;
428     for (@{ref $target->[0]->{child_nodes} eq 'ARRAY'
429     ? $target->[0]->{child_nodes} : []}) {
430     push @target, [$_, $r];
431     }
432     }
433     }
434     }
435     $od->
436     strict_error_checking
437     ($orig_strict);
438     if ($r->
439     node_type
440     ==
441     9
442     ) {
443     $r->
444     dom_config
445    
446     ->
447     set_parameter
448    
449     (
450     'http://suika.fam.cx/www/2006/dom-config/strict-document-children'
451     =>
452     undef
453     );
454     }
455    
456    
457    
458     }
459    
460    
461     ;}
462    
463     ;
464    
465    
466     }
467     $r}
468     $Message::DOM::ImplFeature{q<Message::DOM::TreeStore::ManakaiDOMImplementationTreeStore>}->{q<http://suika.fam.cx/www/2006/feature/treestore>}->{q<3.0>} ||= 1;
469     $Message::DOM::ImplFeature{q<Message::DOM::TreeStore::ManakaiDOMImplementationTreeStore>}->{q<http://suika.fam.cx/www/2006/feature/treestore>}->{q<>} = 1;
470     $Message::DOM::DOMFeature::ClassInfo->{q<Message::DOM::TreeStore::ManakaiDOMImplementationTreeStore>}->{has_feature} = {'',
471     {'',
472     '1'},
473     'http://suika.fam.cx/www/2006/feature/min',
474     {'',
475     '1',
476     '3.0',
477     '1'},
478     'http://suika.fam.cx/www/2006/feature/uri',
479     {'',
480     '1',
481     '4.0',
482     '1'},
483     'http://suika.fam.cx/~wakaba/archive/2004/8/18/manakai-dom#minimum',
484     {'',
485     '1',
486     '3.0',
487     '1'},
488     'xml',
489     {'',
490     '1',
491     '1.0',
492     '1',
493     '2.0',
494     '1',
495     '3.0',
496     '1'},
497     'xmlversion',
498     {'',
499     '1',
500     '1.0',
501     '1',
502     '1.1',
503     '1'}};
504     $Message::DOM::ClassPoint{q<Message::DOM::TreeStore::ManakaiDOMImplementationTreeStore>} = 15.1;
505     $Message::DOM::ManakaiDOMImplementationSource::SourceClass{q<Message::DOM::TreeStore::ManakaiDOMImplementationTreeStore>} = 1;
506     $Message::DOM::DOMFeature::ClassInfo->{q<Message::DOM::DOMFeature::ManakaiMinimumImplementation>}->{compat_class}->{q<Message::DOM::TreeStore::ManakaiDOMImplementationTreeStore>} = 1;
507     $Message::Util::Grove::ClassProp{q<Message::DOM::TreeStore::ManakaiDOMImplementationTreeStore>} = {'v1h',
508     ['lpmi']};
509     for ($Message::DOM::IF::DOMImplementation::, $Message::DOM::IF::DOMImplementationTreeStore::, $Message::DOM::IFLatest::DOMImplementation::){}
510     ## License: <http://suika.fam.cx/~wakaba/archive/2004/8/18/license#Perl+MPL>
511     1;

[email protected]
ViewVC Help
Powered by ViewVC 1.1.24