Mercurial > pub > Impl
comparison Lib/IMPL/DOM/Node.pm @ 11:75980091813b
DOM и навигация
| author | Sergey | 
|---|---|
| date | Wed, 02 Sep 2009 17:47:44 +0400 | 
| parents | 94d47b388442 | 
| children | 65a7bb156fb7 | 
   comparison
  equal
  deleted
  inserted
  replaced
| 10:63f6653b094e | 11:75980091813b | 
|---|---|
| 1 package IMPL::DOM::Node; | 1 package IMPL::DOM::Node; | 
| 2 use strict; | 2 use strict; | 
| 3 use warnings; | 3 use warnings; | 
| 4 | 4 | 
| 5 use base qw(IMPL::Object IMPL::Object::Serializable IMPL::Object::Autofill); | 5 use base qw(IMPL::Object); | 
| 6 | 6 | 
| 7 use IMPL::Object::List; | 7 use IMPL::Object::List; | 
| 8 use IMPL::Class::Property; | 8 use IMPL::Class::Property; | 
| 9 use IMPL::Class::Property::Direct; | 9 use IMPL::Class::Property::Direct; | 
| 10 use Scalar::Util qw(weaken); | 10 use Scalar::Util qw(weaken); | 
| 11 | 11 | 
| 12 use IMPL::Exception; | 12 use IMPL::Exception; | 
| 13 | |
| 14 __PACKAGE__->PassThroughArgs; | |
| 15 | 13 | 
| 16 BEGIN { | 14 BEGIN { | 
| 17 public _direct property nodeName => prop_get | owner_set; | 15 public _direct property nodeName => prop_get | owner_set; | 
| 18 public _direct property isComplex => { get => \&_getIsComplex } ; | 16 public _direct property isComplex => { get => \&_getIsComplex } ; | 
| 19 public _direct property nodeValue => prop_all; | 17 public _direct property nodeValue => prop_all; | 
| 21 public _direct property parentNode => prop_get ; | 19 public _direct property parentNode => prop_get ; | 
| 22 private _direct property _propertyMap => prop_get ; | 20 private _direct property _propertyMap => prop_get ; | 
| 23 } | 21 } | 
| 24 | 22 | 
| 25 sub CTOR { | 23 sub CTOR { | 
| 26 my ($this,$name) = @_; | 24 my ($this,%args) = @_; | 
| 27 | 25 | 
| 28 $this->nodeName($name) or die new IMPL::InvalidArgumentException("A name is required"); | 26 $this->nodeName($args{nodeName}) or die new IMPL::InvalidArgumentException("A name is required"); | 
| 29 } | 27 } | 
| 30 | 28 | 
| 31 sub insertNode { | 29 sub insertNode { | 
| 32 my ($this,$node,$pos) = @_; | 30 my ($this,$node,$pos) = @_; | 
| 33 | 31 | 
| 110 sub _getIsComplex { | 108 sub _getIsComplex { | 
| 111 $_[0]->childNodes->Count ? 1 : 0; | 109 $_[0]->childNodes->Count ? 1 : 0; | 
| 112 } | 110 } | 
| 113 | 111 | 
| 114 sub _setParent { | 112 sub _setParent { | 
| 115 my ($this,$parentNode) = @_; | 113 my ($this,$node) = @_; | 
| 116 | 114 | 
| 117 $this->{$parentNode} = $parentNode; | 115 $this->{$parentNode} = $node; | 
| 118 weaken($this->{$parentNode}); | 116 weaken($this->{$parentNode}); | 
| 119 } | 117 } | 
| 120 | 118 | 
| 121 sub text { | 119 sub text { | 
| 122 my ($this) = @_; | 120 my ($this) = @_; | 
