/[suikacvs]/messaging/manakai/lib/Message/Util/ManakaiNode.pm
Suika

Contents of /messaging/manakai/lib/Message/Util/ManakaiNode.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (hide annotations) (download)
Sat Sep 17 15:03:03 2005 UTC (19 years, 9 months ago) by wakaba
Branch: MAIN
Changes since 1.2: +6 -6 lines
Perl-related methods moved from DIS to DIS/Perl; DIS readProperties method implemented (still buggy)

1 wakaba 1.1 #!/usr/bin/perl
2     ## This file is automatically generated
3 wakaba 1.3 ## at 2005-09-13T11:38:01+00:00,
4 wakaba 1.1 ## from file "lib/Message/Util/ManakaiNode.dis",
5     ## module <http://suika.fam.cx/~wakaba/archive/2005/manakai/Util/ManakaiNode>,
6     ## for <http://suika.fam.cx/~wakaba/archive/2004/8/18/manakai-dom#Perl>.
7     ## Don't edit by hand!
8     use strict;
9     package Message::Util::ManakaiNode;
10 wakaba 1.3 our $VERSION = 20050913.1138;
11 wakaba 1.1 package Message::Util::ManakaiNode::ManakaiDOMNodeObject;
12 wakaba 1.3 our $VERSION = 20050913.1138;
13 wakaba 1.1 push our @ISA, 'Message::Util::IF::NodeStem';
14     sub _import_tree ($$) {
15     my ($self, $node) = @_;
16    
17     {
18     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [b] (Chunk #39)"
19    
20     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [bc] (Chunk #37)"
21     unless
22     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #1)"
23     ($node->{
24     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #2)"
25     'treeID'
26     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #3)"
27     } eq
28     $self->{
29     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #4)"
30     'treeID'
31     #line 2 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #5)"
32     }) {
33     my @node = ($node);
34 wakaba 1.2 NODES: while (defined (my $node = shift @node)) {
35 wakaba 1.1 next unless UNIVERSAL::isa ($node,
36    
37     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #6)"
38     'Message::Util::ManakaiNode::ManakaiDOMNodeObject'
39     #line 6 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #7)"
40     );
41     my @n;
42     for my $p (@{$node->{
43     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #8)"
44     'subnode2'
45     #line 8 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #9)"
46     }}) {
47     if (ref $node->{$p} eq 'ARRAY') {
48     push @n, @{$node->{$p}};
49     } elsif (ref $node->{$p} eq 'HASH') {
50     push @n, values %{$node->{$p}};
51     }
52     }
53     for my $p (@n,
54     map {$node->{$_}} @{$node->{
55     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #10)"
56     'subnode'
57     #line 16 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #11)"
58     }}) {
59     if (ref $p eq 'ARRAY') {
60     push @node, grep {UNIVERSAL::isa ($_,
61    
62     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #12)"
63     'Message::Util::ManakaiNode::ManakaiDOMNodeObject'
64     #line 19 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #13)"
65     )
66     and $_->{
67     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #14)"
68     'treeID'
69     #line 20 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #15)"
70     } ne
71     $self->{
72     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #16)"
73     'treeID'
74     #line 21 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #17)"
75     }} @$p;
76     } elsif (ref $p eq 'HASH') {
77     push @node, grep {UNIVERSAL::isa ($_,
78    
79     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #18)"
80     'Message::Util::ManakaiNode::ManakaiDOMNodeObject'
81     #line 24 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #19)"
82     )
83     and $_->{
84     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #20)"
85     'treeID'
86     #line 25 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #21)"
87     } ne
88     $self->{
89     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #22)"
90     'treeID'
91     #line 26 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #23)"
92     }}
93     values %$p;
94     }
95     }
96     for my $p (@{$node->{
97     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #24)"
98     'origin'
99     #line 30 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #25)"
100     }},
101     @{$node->{
102     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #26)"
103     'subnode0'
104     #line 31 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #27)"
105     }}) {
106     push @node, $node->{$p}
107     if defined $node->{$p} and
108     $node->{$p}->{
109     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #28)"
110     'treeID'
111     #line 34 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #29)"
112     } ne
113     $self->{
114     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #30)"
115     'treeID'
116     #line 35 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #31)"
117     };
118     }
119     $node->{
120     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #32)"
121     'treeID'
122     #line 37 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #33)"
123     } = $self->{
124     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #34)"
125     'treeID'
126     #line 37 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #35)"
127     };
128     }
129     }
130     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #36)"
131    
132     #line 1 "lib/Message/Util/ManakaiNode.dis [/bc] (Chunk #38)"
133    
134     #line 1 "lib/Message/Util/ManakaiNode.dis [/b] (Chunk #40)"
135     }
136     }
137     sub _orphanate ($) {
138     my ($self) = @_;
139    
140     {
141     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=orphanate][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [b] (Chunk #53)"
142    
143     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=orphanate][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [bc] (Chunk #51)"
144     if
145     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=orphanate][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #41)"
146     ($self->
147     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #42)"
148     _is_externally_referred
149     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=orphanate][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #43)"
150     ) {
151     $self->
152     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #44)"
153     _change_tree_id
154     #line 2 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=orphanate][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #45)"
155    
156     (
157     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #46)"
158     (
159     sprintf 'mid:%d.%d.%s.dom.manakai@suika.fam.cx#',
160     time, $$,
161     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62] .
162     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62] .
163     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62] .
164     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62] .
165     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62]
166     )
167     #line 3 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=orphanate][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #47)"
168     );
169     } else {
170     $self->
171     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #48)"
172     _destroy
173     #line 5 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=orphanate][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #49)"
174     ;
175     }
176     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #50)"
177    
178     #line 1 "lib/Message/Util/ManakaiNode.dis [/bc] (Chunk #52)"
179    
180     #line 1 "lib/Message/Util/ManakaiNode.dis [/b] (Chunk #54)"
181     }
182     }
183     sub _is_externally_referred ($) {
184     my ($self) = @_;
185     my $r;
186    
187     {
188     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isExternallyReferred][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [b] (Chunk #81)"
189    
190     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isExternallyReferred][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [bc] (Chunk #79)"
191     if
192     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isExternallyReferred][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #55)"
193     ($self->{
194     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #56)"
195     'rc'
196     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isExternallyReferred][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #57)"
197     }) {
198     $r =
199     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #58)"
200     1
201     #line 2 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isExternallyReferred][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #59)"
202     ;
203     } else {
204     my @node = ($self);
205     my %checked;
206 wakaba 1.2 NODES: while (defined (my $node = shift @node)) {
207 wakaba 1.1 next unless UNIVERSAL::isa ($node,
208    
209     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #60)"
210     'Message::Util::ManakaiNode::ManakaiDOMNodeObject'
211     #line 8 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isExternallyReferred][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #61)"
212     );
213     if ($node->{
214     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #62)"
215     'rc'
216     #line 9 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isExternallyReferred][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #63)"
217     }) {
218     $r =
219     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #64)"
220     1
221     #line 10 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isExternallyReferred][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #65)"
222     ;
223     last NODES;
224     } elsif ($checked{$node->{
225     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #66)"
226     'nodeID'
227     #line 12 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isExternallyReferred][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #67)"
228     }}) {
229     next NODES;
230     }
231     my @n;
232     for my $p (@{$node->{
233     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #68)"
234     'subnode2'
235     #line 16 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isExternallyReferred][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #69)"
236     }}) {
237     if (ref $node->{$p} eq 'ARRAY') {
238     push @n, @{$node->{$p}};
239     } elsif (ref $node->{$p} eq 'HASH') {
240     push @n, values %{$node->{$p}};
241     }
242     }
243     for my $p (@n,
244     map {$node->{$_}} @{$node->{
245     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #70)"
246     'subnode'
247     #line 24 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isExternallyReferred][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #71)"
248     }}) {
249     if (ref $p eq 'ARRAY') {
250     push @node, @$p;
251     } elsif (ref $p eq 'HASH') {
252     push @node, values %$p;
253     }
254     }
255     for my $p (@{$node->{
256     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #72)"
257     'origin'
258     #line 31 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isExternallyReferred][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #73)"
259     }}) {
260     unshift @node, $node->{$p} if $node->{$p};
261     ## NOTE: Puts the top of the list,
262     ## since upper-level nodes are expected to be referred
263     ## more than lower-levels.
264     }
265     for my $p (@{$node->{
266     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #74)"
267     'subnode0'
268     #line 37 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isExternallyReferred][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #75)"
269     }}) {
270     push @node, $node->{$p} if $node->{$p};
271     }
272     $checked{$node->{
273     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #76)"
274     'nodeID'
275     #line 40 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isExternallyReferred][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #77)"
276     }} = 1;
277     }
278     }
279     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #78)"
280    
281     #line 1 "lib/Message/Util/ManakaiNode.dis [/bc] (Chunk #80)"
282    
283     #line 1 "lib/Message/Util/ManakaiNode.dis [/b] (Chunk #82)"
284     }
285     $r}
286     sub _destroy ($) {
287     my ($self) = @_;
288    
289     {
290     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [b] (Chunk #105)"
291    
292     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [bc] (Chunk #103)"
293     my
294     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #83)"
295     @node = ($self);
296 wakaba 1.2 NODES: while (defined (my $node = shift @node)) {
297 wakaba 1.1 my @n;
298     for my $p (@{$node->{
299     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #84)"
300     'subnode2'
301     #line 4 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #85)"
302     }}) {
303     if (ref $node->{$p} eq 'ARRAY') {
304     push @n, @{$node->{$p}};
305     } elsif (ref $node->{$p} eq 'HASH') {
306     push @n, values %{$node->{$p}};
307     }
308     }
309     for my $p (@n,
310     map {$node->{$_}} @{$node->{
311     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #86)"
312     'subnode'
313     #line 12 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #87)"
314     }}) {
315     if (ref $p eq 'ARRAY') {
316     push @node, grep {UNIVERSAL::isa ($_,
317    
318     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #88)"
319     'Message::Util::ManakaiNode::ManakaiDOMNodeObject'
320     #line 15 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #89)"
321     )
322     and defined $_->{
323     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #90)"
324     'nodeID'
325     #line 16 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #91)"
326     }} @$p;
327     } elsif (ref $p eq 'HASH') {
328     push @node, grep {UNIVERSAL::isa ($_,
329    
330     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #92)"
331     'Message::Util::ManakaiNode::ManakaiDOMNodeObject'
332     #line 19 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #93)"
333     )
334     and defined $_->{
335     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #94)"
336     'nodeID'
337     #line 20 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #95)"
338     }}
339     values %$p;
340     }
341     }
342     for my $p (@{$node->{
343     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #96)"
344     'origin'
345     #line 24 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #97)"
346     }},
347     @{$node->{
348     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #98)"
349     'subnode0'
350     #line 25 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #99)"
351     }}) {
352     push @node, $node->{$p}
353     if defined $node->{$p} and
354     defined $node->{$p}->{
355     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #100)"
356     'nodeID'
357     #line 28 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #101)"
358     };
359     }
360     %$node = ();
361     }
362     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #102)"
363    
364     #line 1 "lib/Message/Util/ManakaiNode.dis [/bc] (Chunk #104)"
365    
366     #line 1 "lib/Message/Util/ManakaiNode.dis [/b] (Chunk #106)"
367     }
368     }
369     sub _change_tree_id ($$) {
370     my ($self, $treeID) = @_;
371    
372     {
373     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=changeTreeID][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [b] (Chunk #135)"
374    
375     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=changeTreeID][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [bc] (Chunk #133)"
376     unless
377     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=changeTreeID][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #107)"
378     ($self->{
379     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #108)"
380     'treeID'
381     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=changeTreeID][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #109)"
382     } eq $treeID) {
383     my @node = ($self);
384 wakaba 1.2 NODES: while (defined (my $node = shift @node)) {
385 wakaba 1.1 next unless UNIVERSAL::isa ($node,
386    
387     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #110)"
388     'Message::Util::ManakaiNode::ManakaiDOMNodeObject'
389     #line 5 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=changeTreeID][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #111)"
390     );
391     my @n;
392     for my $p (@{$node->{
393     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #112)"
394     'subnode2'
395     #line 7 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=changeTreeID][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #113)"
396     }}) {
397     if (ref $node->{$p} eq 'ARRAY') {
398     push @n, @{$node->{$p}};
399     } elsif (ref $node->{$p} eq 'HASH') {
400     push @n, values %{$node->{$p}};
401     }
402     }
403     for my $p (@n,
404     map {$node->{$_}} @{$node->{
405     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #114)"
406     'subnode'
407     #line 15 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=changeTreeID][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #115)"
408     }}) {
409     if (ref $p eq 'ARRAY') {
410     push @node, grep {UNIVERSAL::isa ($_,
411    
412     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #116)"
413     'Message::Util::ManakaiNode::ManakaiDOMNodeObject'
414     #line 18 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=changeTreeID][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #117)"
415     )
416     and
417     $_->{
418     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #118)"
419     'treeID'
420     #line 20 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=changeTreeID][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #119)"
421     } ne $treeID} @$p;
422     } elsif (ref $p eq 'HASH') {
423     push @node, grep {UNIVERSAL::isa ($_,
424    
425     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #120)"
426     'Message::Util::ManakaiNode::ManakaiDOMNodeObject'
427     #line 23 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=changeTreeID][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #121)"
428     )
429     and $_->{
430     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #122)"
431     'treeID'
432     #line 24 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=changeTreeID][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #123)"
433     } ne $treeID}
434     values %$p;
435     }
436     }
437     for my $p (@{$node->{
438     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #124)"
439     'origin'
440     #line 28 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=changeTreeID][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #125)"
441     }},
442     @{$node->{
443     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #126)"
444     'subnode0'
445     #line 29 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=changeTreeID][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #127)"
446     }}) {
447     push @node, $node->{$p}
448     if defined $node->{$p} and
449     $node->{$p}->{
450     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #128)"
451     'treeID'
452     #line 32 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=changeTreeID][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #129)"
453     } ne $treeID;
454     }
455     $node->{
456     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #130)"
457     'treeID'
458     #line 34 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=changeTreeID][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #131)"
459     } = $treeID;
460     }
461     }
462     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #132)"
463    
464     #line 1 "lib/Message/Util/ManakaiNode.dis [/bc] (Chunk #134)"
465    
466     #line 1 "lib/Message/Util/ManakaiNode.dis [/b] (Chunk #136)"
467     }
468     }
469     sub _new ($) {
470     my ($self) = @_;
471     my $r;
472    
473     {
474     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [b] (Chunk #165)"
475    
476     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [bc] (Chunk #163)"
477    
478     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #137)"
479     $r = bless {
480    
481     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #138)"
482     'origin'
483     #line 2 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #139)"
484     => [],
485    
486     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #140)"
487     'subnode0'
488     #line 3 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #141)"
489     => [],
490    
491     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #142)"
492     'subnode'
493     #line 4 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #143)"
494     => [],
495    
496     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #144)"
497     'subnode2'
498     #line 5 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #145)"
499     => [],
500    
501     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #146)"
502     'irefnode'
503     #line 6 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #147)"
504     => [],
505    
506     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #148)"
507     'anydata'
508     #line 7 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #149)"
509     => [],
510    
511     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #150)"
512     'anydata2'
513     #line 8 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #151)"
514     => [],
515    
516     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #152)"
517     'rc'
518     #line 9 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #153)"
519     => 0,
520    
521     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #154)"
522     'treeID'
523     #line 10 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #155)"
524     =>
525     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #156)"
526     (
527     sprintf 'mid:%d.%d.%s.dom.manakai@suika.fam.cx#',
528     time, $$,
529     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62] .
530     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62] .
531     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62] .
532     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62] .
533     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62]
534     )
535     #line 10 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #157)"
536     ,
537    
538     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #158)"
539     'nodeID'
540     #line 11 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #159)"
541     =>
542     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #160)"
543     (
544     sprintf 'mid:%d.%d.%s.dom.manakai@suika.fam.cx#',
545     time, $$,
546     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62] .
547     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62] .
548     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62] .
549     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62] .
550     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62]
551     )
552     #line 11 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #161)"
553     ,
554     }, ref $self || $self;
555     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #162)"
556    
557     #line 1 "lib/Message/Util/ManakaiNode.dis [/bc] (Chunk #164)"
558    
559     #line 1 "lib/Message/Util/ManakaiNode.dis [/b] (Chunk #166)"
560     }
561     $r}
562     sub _is_same_node ($$) {
563     my ($self, $node) = @_;
564     my $r;
565    
566     {
567     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isSameNode][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [b] (Chunk #179)"
568    
569     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isSameNode][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [bc] (Chunk #177)"
570     if
571     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isSameNode][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #167)"
572     (ref $node and
573     UNIVERSAL::isa ($node,
574    
575     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #168)"
576     'Message::Util::ManakaiNode::ManakaiDOMNodeObject'
577     #line 3 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isSameNode][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #169)"
578     ) and
579     $node->{
580     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #170)"
581     'nodeID'
582     #line 4 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isSameNode][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #171)"
583     } eq $self->{
584     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #172)"
585     'nodeID'
586     #line 4 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isSameNode][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #173)"
587     }) {
588     $r =
589     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #174)"
590     1
591     #line 5 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isSameNode][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #175)"
592     ;
593     }
594     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #176)"
595    
596     #line 1 "lib/Message/Util/ManakaiNode.dis [/bc] (Chunk #178)"
597    
598     #line 1 "lib/Message/Util/ManakaiNode.dis [/b] (Chunk #180)"
599     }
600     $r}
601     sub _new_reference ($$) {
602     my ($self, $class) = @_;
603     my $r;
604    
605     {
606     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=newReference][@type=DISLang:Method]/Return[@Type=ManakaiDOM:ManakaiDOMNodeReference][@type=DISLang:MethodReturn]/PerlDef [b] (Chunk #191)"
607    
608     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=newReference][@type=DISLang:Method]/Return[@Type=ManakaiDOM:ManakaiDOMNodeReference][@type=DISLang:MethodReturn]/PerlDef [bc] (Chunk #189)"
609    
610     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=newReference][@type=DISLang:Method]/Return[@Type=ManakaiDOM:ManakaiDOMNodeReference][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #181)"
611     $r = bless {
612    
613     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #182)"
614     'node'
615     #line 2 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=newReference][@type=DISLang:Method]/Return[@Type=ManakaiDOM:ManakaiDOMNodeReference][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #183)"
616     => $self,
617     }, ref $class ? ref $class : defined $class ? $class :
618    
619     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #184)"
620     'Message::Util::ManakaiNode::ManakaiDOMNodeReference'
621     #line 4 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=newReference][@type=DISLang:Method]/Return[@Type=ManakaiDOM:ManakaiDOMNodeReference][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #185)"
622     ;
623     $self->{
624     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #186)"
625     'rc'
626     #line 5 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=newReference][@type=DISLang:Method]/Return[@Type=ManakaiDOM:ManakaiDOMNodeReference][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #187)"
627     }++;
628     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #188)"
629    
630     #line 1 "lib/Message/Util/ManakaiNode.dis [/bc] (Chunk #190)"
631    
632     #line 1 "lib/Message/Util/ManakaiNode.dis [/b] (Chunk #192)"
633     }
634     $r}
635     use overload bool => sub () {1}, 'eq', '_is_same_node', fallback => 1;
636     $Message::DOM::ClassFeature{q<Message::Util::ManakaiNode::ManakaiDOMNodeObject>} = {};
637     $Message::DOM::ClassPoint{q<Message::Util::ManakaiNode::ManakaiDOMNodeObject>} = 0;
638     package Message::Util::ManakaiNode::ManakaiNodeStem;
639 wakaba 1.3 our $VERSION = 20050913.1138;
640 wakaba 1.1 push our @ISA, 'Message::Util::IF::NodeStem';
641     sub _import_tree ($$) {
642     my ($self, $node) = @_;
643    
644     {
645     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [b] (Chunk #213)"
646    
647     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [bc] (Chunk #211)"
648     my
649     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #193)"
650     @node = ($node);
651 wakaba 1.2 NODES: while (defined (my $node = shift @node)) {
652 wakaba 1.1 next unless ref $node;
653     next if $node->{
654     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #194)"
655     'treeID'
656     #line 4 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #195)"
657     } eq
658     $self->{
659     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #196)"
660     'treeID'
661     #line 5 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #197)"
662     };
663     my @n;
664     for my $p (@{$node->{
665     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #198)"
666     'subnode2'
667     #line 7 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #199)"
668     }}) {
669     if (ref $node->{$p} eq 'ARRAY') {
670     push @n, @{$node->{$p}};
671     } elsif (ref $node->{$p} eq 'HASH') {
672     push @n, values %{$node->{$p}};
673     }
674     }
675     for my $p (@n,
676     map {$node->{$_}} @{$node->{
677     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #200)"
678     'subnode'
679     #line 15 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #201)"
680     }}) {
681     if (ref $p eq 'ARRAY') {
682     push @node, @$p;
683     } elsif (ref $p eq 'HASH') {
684     push @node, values %$p;
685     }
686     }
687     for my $p (@{$node->{
688     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #202)"
689     'origin'
690     #line 22 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #203)"
691     }},
692     @{$node->{
693     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #204)"
694     'subnode0'
695     #line 23 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #205)"
696     }}) {
697     push @node, $node->{$p};
698     }
699     $node->{
700     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #206)"
701     'treeID'
702     #line 26 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #207)"
703     } = $self->{
704     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #208)"
705     'treeID'
706     #line 26 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=importTree][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #209)"
707     };
708     }
709     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #210)"
710    
711     #line 1 "lib/Message/Util/ManakaiNode.dis [/bc] (Chunk #212)"
712    
713     #line 1 "lib/Message/Util/ManakaiNode.dis [/b] (Chunk #214)"
714     }
715     }
716     sub _new ($) {
717     my ($self) = @_;
718     my $r;
719    
720     {
721     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [b] (Chunk #243)"
722    
723     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [bc] (Chunk #241)"
724    
725     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #215)"
726     $r = bless {
727    
728     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #216)"
729     'origin'
730     #line 2 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #217)"
731     => [],
732    
733     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #218)"
734     'subnode0'
735     #line 3 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #219)"
736     => [],
737    
738     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #220)"
739     'subnode'
740     #line 4 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #221)"
741     => [],
742    
743     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #222)"
744     'subnode2'
745     #line 5 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #223)"
746     => [],
747    
748     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #224)"
749     'irefnode'
750     #line 6 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #225)"
751     => [],
752    
753     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #226)"
754     'anydata'
755     #line 7 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #227)"
756     => [],
757    
758     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #228)"
759     'anydata2'
760     #line 8 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #229)"
761     => [],
762    
763     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #230)"
764     'rc'
765     #line 9 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #231)"
766     => 0,
767    
768     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #232)"
769     'treeID'
770     #line 10 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #233)"
771     =>
772     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #234)"
773     (
774     sprintf 'mid:%d.%d.%s.dom.manakai@suika.fam.cx#',
775     time, $$,
776     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62] .
777     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62] .
778     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62] .
779     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62] .
780     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62]
781     )
782     #line 10 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #235)"
783     ,
784    
785     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #236)"
786     'nodeID'
787     #line 11 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #237)"
788     =>
789     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #238)"
790     (
791     sprintf 'mid:%d.%d.%s.dom.manakai@suika.fam.cx#',
792     time, $$,
793     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62] .
794     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62] .
795     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62] .
796     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62] .
797     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62]
798     )
799     #line 11 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=new][@type=DISLang:Method]/Return[@Type=NodeStem][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #239)"
800     ,
801     }, ref $self || $self;
802     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #240)"
803    
804     #line 1 "lib/Message/Util/ManakaiNode.dis [/bc] (Chunk #242)"
805    
806     #line 1 "lib/Message/Util/ManakaiNode.dis [/b] (Chunk #244)"
807     }
808     $r}
809     sub _orphanate ($) {
810     my ($self) = @_;
811    
812     {
813     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=orphanate][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [b] (Chunk #257)"
814    
815     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=orphanate][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [bc] (Chunk #255)"
816     if
817     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=orphanate][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #245)"
818     ($self->
819     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #246)"
820     _is_externally_referred
821     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=orphanate][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #247)"
822     ) {
823     $self->
824     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #248)"
825     _change_tree_id
826     #line 2 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=orphanate][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #249)"
827    
828     (
829     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #250)"
830     (
831     sprintf 'mid:%d.%d.%s.dom.manakai@suika.fam.cx#',
832     time, $$,
833     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62] .
834     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62] .
835     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62] .
836     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62] .
837     ['A'..'Z', 'a'..'z', '0'..'9']->[rand 62]
838     )
839     #line 3 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=orphanate][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #251)"
840     );
841     } else {
842     $self->
843     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #252)"
844     _destroy
845     #line 5 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=orphanate][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #253)"
846     ;
847     }
848     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #254)"
849    
850     #line 1 "lib/Message/Util/ManakaiNode.dis [/bc] (Chunk #256)"
851    
852     #line 1 "lib/Message/Util/ManakaiNode.dis [/b] (Chunk #258)"
853     }
854     }
855     sub _is_externally_referred ($) {
856     my ($self) = @_;
857     my $r;
858    
859     {
860     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isExternallyReferred][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [b] (Chunk #283)"
861    
862     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isExternallyReferred][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [bc] (Chunk #281)"
863     if
864     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isExternallyReferred][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #259)"
865     ($self->{
866     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #260)"
867     'rc'
868     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isExternallyReferred][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #261)"
869     }) {
870     $r =
871     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #262)"
872     1
873     #line 2 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isExternallyReferred][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #263)"
874     ;
875     } else {
876     my @node = ($self);
877     my %checked;
878 wakaba 1.2 NODES: while (defined (my $node = shift @node)) {
879 wakaba 1.1 next unless ref $node;
880     if ($node->{
881     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #264)"
882     'rc'
883     #line 8 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isExternallyReferred][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #265)"
884     }) {
885     $r =
886     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #266)"
887     1
888     #line 9 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isExternallyReferred][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #267)"
889     ;
890     last NODES;
891     } elsif ($checked{$node->{
892     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #268)"
893     'nodeID'
894     #line 11 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isExternallyReferred][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #269)"
895     }}) {
896     next NODES;
897     }
898     my @n;
899     for my $p (@{$node->{
900     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #270)"
901     'subnode2'
902     #line 15 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isExternallyReferred][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #271)"
903     }}) {
904     if (ref $node->{$p} eq 'ARRAY') {
905     push @n, @{$node->{$p}};
906     } elsif (ref $node->{$p} eq 'HASH') {
907     push @n, values %{$node->{$p}};
908     }
909     }
910     for my $p (@n,
911     map {$node->{$_}} @{$node->{
912     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #272)"
913     'subnode'
914     #line 23 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isExternallyReferred][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #273)"
915     }}) {
916     if (ref $p eq 'ARRAY') {
917     push @node, @$p;
918     } elsif (ref $p eq 'HASH') {
919     push @node, values %$p;
920     }
921     }
922     for my $p (@{$node->{
923     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #274)"
924     'origin'
925     #line 30 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isExternallyReferred][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #275)"
926     }}) {
927     unshift @node, $node->{$p} if $node->{$p};
928     ## NOTE: Puts the top of the list,
929     ## since upper-level nodes are expected to be referred
930     ## more than lower-levels.
931     }
932     for my $p (@{$node->{
933     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #276)"
934     'subnode0'
935     #line 36 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isExternallyReferred][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #277)"
936     }}) {
937     push @node, $node->{$p} if $node->{$p};
938     }
939     $checked{$node->{
940     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #278)"
941     'nodeID'
942     #line 39 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isExternallyReferred][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #279)"
943     }} = 1;
944     }
945     }
946     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #280)"
947    
948     #line 1 "lib/Message/Util/ManakaiNode.dis [/bc] (Chunk #282)"
949    
950     #line 1 "lib/Message/Util/ManakaiNode.dis [/b] (Chunk #284)"
951     }
952     $r}
953     sub _is_same_node ($$) {
954     my ($self, $node) = @_;
955     my $r;
956    
957     {
958     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isSameNode][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [b] (Chunk #297)"
959    
960     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isSameNode][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [bc] (Chunk #295)"
961     if
962     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isSameNode][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #285)"
963     (ref $node and
964     UNIVERSAL::isa ($node,
965     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #286)"
966     'Message::Util::IF::NodeStem'
967     #line 2 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isSameNode][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #287)"
968     ) and
969     $node->{
970     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #288)"
971     'nodeID'
972     #line 3 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isSameNode][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #289)"
973     } eq $self->{
974     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #290)"
975     'nodeID'
976     #line 3 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isSameNode][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #291)"
977     }) {
978     $r =
979     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #292)"
980     1
981     #line 4 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=isSameNode][@type=DISLang:Method]/Return[@Type=DISPerl:Boolean::ManakaiDOM:all][@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #293)"
982     ;
983     }
984     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #294)"
985    
986     #line 1 "lib/Message/Util/ManakaiNode.dis [/bc] (Chunk #296)"
987    
988     #line 1 "lib/Message/Util/ManakaiNode.dis [/b] (Chunk #298)"
989     }
990     $r}
991     sub _destroy ($) {
992     my ($self) = @_;
993    
994     {
995     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [b] (Chunk #313)"
996    
997     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [bc] (Chunk #311)"
998     my
999     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #299)"
1000     @node = ($self);
1001 wakaba 1.2 NODES: while (defined (my $node = shift @node)) {
1002 wakaba 1.1 next unless ref $node and defined $node->{
1003     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #300)"
1004     'nodeID'
1005     #line 3 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #301)"
1006     };
1007     my @n;
1008     for my $p (@{$node->{
1009     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #302)"
1010     'subnode2'
1011     #line 5 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #303)"
1012     }}) {
1013     if (ref $node->{$p} eq 'ARRAY') {
1014     push @n, @{$node->{$p}};
1015     } elsif (ref $node->{$p} eq 'HASH') {
1016     push @n, values %{$node->{$p}};
1017     }
1018     }
1019     for my $p (@n,
1020     map {$node->{$_}} @{$node->{
1021     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #304)"
1022     'subnode'
1023     #line 13 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #305)"
1024     }}) {
1025     if (ref $p eq 'ARRAY') {
1026     push @node, @$p;
1027     } elsif (ref $p eq 'HASH') {
1028     push @node, values %$p;
1029     }
1030     }
1031     for my $p (@{$node->{
1032     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #306)"
1033     'origin'
1034     #line 20 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #307)"
1035     }},
1036     @{$node->{
1037     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #308)"
1038     'subnode0'
1039     #line 21 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #309)"
1040     }}) {
1041     push @node, $node->{$p};
1042     }
1043     %$node = ();
1044     }
1045     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #310)"
1046    
1047     #line 1 "lib/Message/Util/ManakaiNode.dis [/bc] (Chunk #312)"
1048    
1049     #line 1 "lib/Message/Util/ManakaiNode.dis [/b] (Chunk #314)"
1050     }
1051     }
1052     sub _change_tree_id ($$) {
1053     my ($self, $treeID) = @_;
1054    
1055     {
1056     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=changeTreeID][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [b] (Chunk #331)"
1057    
1058     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=changeTreeID][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [bc] (Chunk #329)"
1059     my
1060     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=changeTreeID][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #315)"
1061     @node = ($self);
1062 wakaba 1.2 NODES: while (defined (my $node = shift @node)) {
1063 wakaba 1.1 next unless ref $node;
1064     next if $node->{
1065     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #316)"
1066     'treeID'
1067     #line 4 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=changeTreeID][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #317)"
1068     } eq $treeID;
1069     my @n;
1070     for my $p (@{$node->{
1071     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #318)"
1072     'subnode2'
1073     #line 6 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=changeTreeID][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #319)"
1074     }}) {
1075     if (ref $node->{$p} eq 'ARRAY') {
1076     push @n, @{$node->{$p}};
1077     } elsif (ref $node->{$p} eq 'HASH') {
1078     push @n, values %{$node->{$p}};
1079     }
1080     }
1081     for my $p (@n,
1082     map {$node->{$_}} @{$node->{
1083     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #320)"
1084     'subnode'
1085     #line 14 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=changeTreeID][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #321)"
1086     }}) {
1087     if (ref $p eq 'ARRAY') {
1088     push @node, @$p;
1089     } elsif (ref $p eq 'HASH') {
1090     push @node, values %$p;
1091     }
1092     }
1093     for my $p (@{$node->{
1094     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #322)"
1095     'origin'
1096     #line 21 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=changeTreeID][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #323)"
1097     }},
1098     @{$node->{
1099     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #324)"
1100     'subnode0'
1101     #line 22 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=changeTreeID][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #325)"
1102     }}) {
1103     push @node, $node->{$p};
1104     }
1105     $node->{
1106     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #326)"
1107     'treeID'
1108     #line 25 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeStem][@type=dis:MultipleResource]/IntMethod[@Name=changeTreeID][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #327)"
1109     } = $treeID;
1110     }
1111     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #328)"
1112    
1113     #line 1 "lib/Message/Util/ManakaiNode.dis [/bc] (Chunk #330)"
1114    
1115     #line 1 "lib/Message/Util/ManakaiNode.dis [/b] (Chunk #332)"
1116     }
1117     }
1118     use overload bool => sub () {1}, 'eq', '_is_same_node', fallback => 1;
1119     $Message::DOM::ClassFeature{q<Message::Util::ManakaiNode::ManakaiNodeStem>} = {};
1120     $Message::DOM::ClassPoint{q<Message::Util::ManakaiNode::ManakaiNodeStem>} = 0;
1121     package Message::Util::ManakaiNode::ManakaiDOMNodeReference;
1122 wakaba 1.3 our $VERSION = 20050913.1138;
1123 wakaba 1.1 push our @ISA, 'Message::Util::IF::NodeRef';
1124     *DESTROY = \&_destroy;
1125     sub _destroy ($) {
1126     my ($self) = @_;
1127    
1128     {
1129     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeRef][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [b] (Chunk #349)"
1130    
1131     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeRef][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [bc] (Chunk #347)"
1132     my
1133     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeRef][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #333)"
1134     $node = $self->{
1135     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #334)"
1136     'node'
1137     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeRef][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #335)"
1138     };
1139     if ($node) {
1140     CORE::delete $self->{
1141     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #336)"
1142     'node'
1143     #line 3 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeRef][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #337)"
1144     };
1145     unless ($self->{
1146     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #338)"
1147     'isWeak'
1148     #line 4 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeRef][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #339)"
1149     }) {
1150     $node->{
1151     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #340)"
1152     'rc'
1153     #line 5 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeRef][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #341)"
1154     }--;
1155     unless ($node->
1156     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #342)"
1157     _is_externally_referred
1158     #line 6 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeRef][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #343)"
1159     ) {
1160     $node->
1161     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #344)"
1162     _destroy
1163     #line 7 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeRef][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #345)"
1164     ;
1165     }
1166     }
1167     } else {
1168     warn ref ($self) . q{->DESTROY: there is no associated }.
1169     q{node object - you have a global variable or }.
1170     qq{potential memory-leak detected\n};
1171     }
1172     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #346)"
1173    
1174     #line 1 "lib/Message/Util/ManakaiNode.dis [/bc] (Chunk #348)"
1175    
1176     #line 1 "lib/Message/Util/ManakaiNode.dis [/b] (Chunk #350)"
1177     }
1178     }
1179     $Message::DOM::ClassFeature{q<Message::Util::ManakaiNode::ManakaiDOMNodeReference>} = {};
1180     $Message::DOM::ClassPoint{q<Message::Util::ManakaiNode::ManakaiDOMNodeReference>} = 0;
1181     package Message::Util::ManakaiNode::ManakaiNodeRef;
1182 wakaba 1.3 our $VERSION = 20050913.1138;
1183 wakaba 1.1 push our @ISA, 'Message::Util::IF::NodeRef';
1184 wakaba 1.2 sub free ($) {
1185     my ($self) = @_;
1186    
1187     {
1188     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeRef][@type=dis:MultipleResource]/ResourceDef[@Name=free][@type=DISLang|Method]/Return[@type=DISLang:MethodReturn]/PerlDef [b] (Chunk #359)"
1189    
1190     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeRef][@type=dis:MultipleResource]/ResourceDef[@Name=free][@type=DISLang|Method]/Return[@type=DISLang:MethodReturn]/PerlDef [bc] (Chunk #357)"
1191    
1192     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeRef][@type=dis:MultipleResource]/ResourceDef[@Name=free][@type=DISLang|Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #351)"
1193     $self->{
1194     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #352)"
1195     'node'
1196     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeRef][@type=dis:MultipleResource]/ResourceDef[@Name=free][@type=DISLang|Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #353)"
1197     }->
1198     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #354)"
1199     _destroy
1200     #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeRef][@type=dis:MultipleResource]/ResourceDef[@Name=free][@type=DISLang|Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #355)"
1201     ;
1202     #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #356)"
1203    
1204     #line 1 "lib/Message/Util/ManakaiNode.dis [/bc] (Chunk #358)"
1205    
1206     #line 1 "lib/Message/Util/ManakaiNode.dis [/b] (Chunk #360)"
1207     }
1208     }
1209 wakaba 1.1 *DESTROY = \&_destroy;
1210     sub _destroy ($) {
1211     my ($self) = @_;
1212    
1213     {
1214 wakaba 1.2 #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeRef][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [b] (Chunk #377)"
1215 wakaba 1.1
1216 wakaba 1.2 #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeRef][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [bc] (Chunk #375)"
1217 wakaba 1.1 my
1218 wakaba 1.2 #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeRef][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #361)"
1219 wakaba 1.1 $node = $self->{
1220 wakaba 1.2 #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #362)"
1221 wakaba 1.1 'node'
1222 wakaba 1.2 #line 1 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeRef][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #363)"
1223 wakaba 1.1 };
1224     if ($node) {
1225     CORE::delete $self->{
1226 wakaba 1.2 #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #364)"
1227 wakaba 1.1 'node'
1228 wakaba 1.2 #line 3 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeRef][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #365)"
1229 wakaba 1.1 };
1230     unless ($self->{
1231 wakaba 1.2 #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #366)"
1232 wakaba 1.1 'isWeak'
1233 wakaba 1.2 #line 4 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeRef][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #367)"
1234 wakaba 1.1 }) {
1235     $node->{
1236 wakaba 1.2 #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #368)"
1237 wakaba 1.1 'rc'
1238 wakaba 1.2 #line 5 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeRef][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #369)"
1239 wakaba 1.1 }--;
1240     unless ($node->
1241 wakaba 1.2 #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #370)"
1242 wakaba 1.1 _is_externally_referred
1243 wakaba 1.2 #line 6 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeRef][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #371)"
1244 wakaba 1.1 ) {
1245     $node->
1246 wakaba 1.2 #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #372)"
1247 wakaba 1.1 _destroy
1248 wakaba 1.2 #line 7 "/document (lib/Message/Util/ManakaiNode.dis)/ClassDef[@QName=NodeRef][@type=dis:MultipleResource]/IntMethod[@Name=destroy][@type=DISLang:Method]/Return[@type=DISLang:MethodReturn]/PerlDef [u] (Chunk #373)"
1249 wakaba 1.1 ;
1250     }
1251     }
1252     } else {
1253     warn ref ($self) . q{->DESTROY: there is no associated }.
1254     q{node object - you have a global variable or }.
1255     qq{potential memory-leak detected\n};
1256     }
1257 wakaba 1.2 #line 1 "lib/Message/Util/ManakaiNode.dis [/u] (Chunk #374)"
1258 wakaba 1.1
1259 wakaba 1.2 #line 1 "lib/Message/Util/ManakaiNode.dis [/bc] (Chunk #376)"
1260 wakaba 1.1
1261 wakaba 1.2 #line 1 "lib/Message/Util/ManakaiNode.dis [/b] (Chunk #378)"
1262 wakaba 1.1 }
1263     }
1264     $Message::DOM::ClassFeature{q<Message::Util::ManakaiNode::ManakaiNodeRef>} = {};
1265     $Message::DOM::ClassPoint{q<Message::Util::ManakaiNode::ManakaiNodeRef>} = 0;
1266     for ($Message::Util::IF::NodeRef::, $Message::Util::IF::NodeStem::){}
1267     ## License: <http://suika.fam.cx/~wakaba/archive/2004/8/18/license#Perl+MPL>
1268     1;

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24