diff Lib/IMPL/DOM/XMLReader.pm @ 49:16ada169ca75

migrating to the Eclipse IDE
author wizard@linux-odin.local
date Fri, 26 Feb 2010 10:49:21 +0300
parents c2e7f7c96bcd
children c289ed9662ca
line wrap: on
line diff
--- a/Lib/IMPL/DOM/XMLReader.pm	Fri Feb 26 01:43:42 2010 +0300
+++ b/Lib/IMPL/DOM/XMLReader.pm	Fri Feb 26 10:49:21 2010 +0300
@@ -1,105 +1,105 @@
-package IMPL::DOM::XMLReader;
-use strict;
-use warnings;
-
-use base qw(IMPL::Object IMPL::Object::Autofill);
-use IMPL::Class::Property;
-use IMPL::Class::Property::Direct;
-use XML::Parser;
-
-__PACKAGE__->PassThroughArgs;
-
-BEGIN {
-    public _direct property Navigator => prop_get | owner_set;
-    private _direct property _current => prop_all;
-    private _direct property _text => prop_all;
-    private _direct property _textHistory => prop_all;
-}
-
-sub Parse {
-    my ($this,$in) = @_;
-    
-    my $parser = new XML::Parser(
-        Handlers => {
-            Start => sub {shift; goto &OnStart($this,@_)},
-            End => sub {shift; goto &OnEnd($this,@_)},
-            Char => sub {shift; goto &OnChar($this,@_)}
-        }
-    );
-    
-    $parser->parse($in);
-}
-
-sub ParseFile {
-    my ($this,$in) = @_;
-    
-    my $parser = new XML::Parser(
-        Handlers => {
-            Start => sub {shift; unshift @_, $this; goto &_OnBegin;},
-            End => sub {shift; unshift @_, $this; goto &_OnEnd;},
-            Char => sub {shift; unshift @_, $this; goto &_OnChar;}
-        }
-    );
-    
-    $parser->parsefile($in);
-}
-
-
-sub _OnBegin {
-    my ($this,$element,%attrs) = @_;
-    
-    push @{$this->{$_textHistory}},$this->{$_text};
-    $this->{$_text} = "";
-    $this->{$_current} = $this->Navigator->NavigateCreate($element,%attrs);
-}
-
-sub _OnEnd {
-    my ($this,$element) = @_;
-    
-    $this->{$_current}->nodeValue($this->{$_text}) if length $this->{$_text};
-    $this->{$_text} = pop @{$this->{$_textHistory}};
-    $this->{$_current} = $this->Navigator->Back;
-}
-
-sub _OnChar {
-    my ($this,$val) = @_;
-    $this->{$_text} .= $val;
-}
-
-1;
-
-__END__
-
-=pod
-
-=head1 SYNOPSIS
-
-my $reader = new IMPL::DOM::XMLReader(Navigator => $DomBuilder);
-my $obj = $reader->parsefile("data.xml");
-
-=head1 DESCRIPTION
-
-Простой класс, использующий навигатор для постороения документа. В зависимости от
-используемого навигатора может быть получен различный результат.
-
-Навигатор должен поодерживать методы C<NavigateCreate> и C<Back>
-
-=head1 METHODS
-
-=over
-
-=item C<CTOR(Naviagtor => $builder)>
-
-Создает новый экземпляр парсера, с указанным навигатором для построения документа
-
-=item C<$obj->Parse($in)>
-
-Строит документ. На вход получает либо xml строку, либо HANDLE.
-
-=item C<$obj->ParseFile($fileName)>
-
-Строит документ из файла с именем C<$fileName>.
-
-=back
-
-=cut
+package IMPL::DOM::XMLReader;
+use strict;
+use warnings;
+
+use base qw(IMPL::Object IMPL::Object::Autofill);
+use IMPL::Class::Property;
+use IMPL::Class::Property::Direct;
+use XML::Parser;
+
+__PACKAGE__->PassThroughArgs;
+
+BEGIN {
+    public _direct property Navigator => prop_get | owner_set;
+    private _direct property _current => prop_all;
+    private _direct property _text => prop_all;
+    private _direct property _textHistory => prop_all;
+}
+
+sub Parse {
+    my ($this,$in) = @_;
+    
+    my $parser = new XML::Parser(
+        Handlers => {
+            Start => sub {shift; goto &OnStart($this,@_)},
+            End => sub {shift; goto &OnEnd($this,@_)},
+            Char => sub {shift; goto &OnChar($this,@_)}
+        }
+    );
+    
+    $parser->parse($in);
+}
+
+sub ParseFile {
+    my ($this,$in) = @_;
+    
+    my $parser = new XML::Parser(
+        Handlers => {
+            Start => sub {shift; unshift @_, $this; goto &_OnBegin;},
+            End => sub {shift; unshift @_, $this; goto &_OnEnd;},
+            Char => sub {shift; unshift @_, $this; goto &_OnChar;}
+        }
+    );
+    
+    $parser->parsefile($in);
+}
+
+
+sub _OnBegin {
+    my ($this,$element,%attrs) = @_;
+    
+    push @{$this->{$_textHistory}},$this->{$_text};
+    $this->{$_text} = "";
+    $this->{$_current} = $this->Navigator->NavigateCreate($element,%attrs);
+}
+
+sub _OnEnd {
+    my ($this,$element) = @_;
+    
+    $this->{$_current}->nodeValue($this->{$_text}) if length $this->{$_text};
+    $this->{$_text} = pop @{$this->{$_textHistory}};
+    $this->{$_current} = $this->Navigator->Back;
+}
+
+sub _OnChar {
+    my ($this,$val) = @_;
+    $this->{$_text} .= $val;
+}
+
+1;
+
+__END__
+
+=pod
+
+=head1 SYNOPSIS
+
+my $reader = new IMPL::DOM::XMLReader(Navigator => $DomBuilder);
+my $obj = $reader->parsefile("data.xml");
+
+=head1 DESCRIPTION
+
+Простой класс, использующий навигатор для постороения документа. В зависимости от
+используемого навигатора может быть получен различный результат.
+
+Навигатор должен поодерживать методы C<NavigateCreate> и C<Back>
+
+=head1 METHODS
+
+=over
+
+=item C<CTOR(Naviagtor => $builder)>
+
+Создает новый экземпляр парсера, с указанным навигатором для построения документа
+
+=item C<$obj->Parse($in)>
+
+Строит документ. На вход получает либо xml строку, либо HANDLE.
+
+=item C<$obj->ParseFile($fileName)>
+
+Строит документ из файла с именем C<$fileName>.
+
+=back
+
+=cut