Mercurial > pub > Impl
diff Lib/IMPL/DOM/Schema/SwitchNode.pm @ 49:16ada169ca75
migrating to the Eclipse IDE
author | wizard@linux-odin.local |
---|---|
date | Fri, 26 Feb 2010 10:49:21 +0300 |
parents | 7f00786f8210 |
children | a4b0a819bbda |
line wrap: on
line diff
--- a/Lib/IMPL/DOM/Schema/SwitchNode.pm Fri Feb 26 01:43:42 2010 +0300 +++ b/Lib/IMPL/DOM/Schema/SwitchNode.pm Fri Feb 26 10:49:21 2010 +0300 @@ -1,54 +1,54 @@ -package IMPL::DOM::Schema::SwitchNode; -use strict; -use warnings; - -use base qw(IMPL::DOM::Schema::AnyNode); -use IMPL::Class::Property; -require IMPL::DOM::Schema::ValidationError; - -our %CTOR = ( - 'IMPL::DOM::Schema::AnyNode' => sub { - my %args = @_; - - $args{nodeName} ||= 'SwitchNode'; - - %args; - } -); - -BEGIN { - public property messageNoMatch => prop_all; -} - -sub CTOR { - my ($this,%args) = @_; - - $this->messageNoMatch($args{messageNoMatch} || 'A node %Node.nodeName% isn\'t expected in the %Node.parentNode.path%'); -} - -sub Validate { - my ($this,$node) = @_; - - if ( my ($schema) = $this->selectNodes(sub {$_[0]->name eq $node->nodeName} ) ) { - return $schema->Validate($node); - } else { - return new IMPL::DOM::Schema::ValidationError( - Node => $node, - Source => $this, - Message => $this->messageNoMatch - ); - } -} - -1; - -__END__ - -=pod - -=head1 DESCRIPTION - -Представляет узел, который может быть одним из узлов, которые лежат внутри него. -Это более строгий вариант C<IMPL::DOM::Schema::AnyNode>. - -=cut +package IMPL::DOM::Schema::SwitchNode; +use strict; +use warnings; + +use base qw(IMPL::DOM::Schema::AnyNode); +use IMPL::Class::Property; +require IMPL::DOM::Schema::ValidationError; + +our %CTOR = ( + 'IMPL::DOM::Schema::AnyNode' => sub { + my %args = @_; + + $args{nodeName} ||= 'SwitchNode'; + + %args; + } +); + +BEGIN { + public property messageNoMatch => prop_all; +} + +sub CTOR { + my ($this,%args) = @_; + + $this->messageNoMatch($args{messageNoMatch} || 'A node %Node.nodeName% isn\'t expected in the %Node.parentNode.path%'); +} + +sub Validate { + my ($this,$node) = @_; + + if ( my ($schema) = $this->selectNodes(sub {$_[0]->name eq $node->nodeName} ) ) { + return $schema->Validate($node); + } else { + return new IMPL::DOM::Schema::ValidationError( + Node => $node, + Source => $this, + Message => $this->messageNoMatch + ); + } +} + +1; + +__END__ + +=pod + +=head1 DESCRIPTION + +Представляет узел, который может быть одним из узлов, которые лежат внутри него. +Это более строгий вариант C<IMPL::DOM::Schema::AnyNode>. + +=cut