# HG changeset patch # User sergey # Date 1392066827 -14400 # Node ID 4cc6cc370fb27a0b2d984d37e13026c5ea27c604 # Parent 4bdf155e5bfe4464e392c77d9a08f1cb52d4805b DOM refactoring diff -r 4bdf155e5bfe -r 4cc6cc370fb2 Lib/IMPL/DOM/Transform/ObjectToDOM.pm --- a/Lib/IMPL/DOM/Transform/ObjectToDOM.pm Tue Feb 11 01:06:40 2014 +0400 +++ b/Lib/IMPL/DOM/Transform/ObjectToDOM.pm Tue Feb 11 01:13:47 2014 +0400 @@ -63,10 +63,6 @@ shift->_navi->Current; } -sub inflateNodeValue { - shift->_navi->inflateValue(shift); -} - sub TransformHash { my ($this,$data) = @_; @@ -74,7 +70,7 @@ unless ref $data eq 'HASH'; return $this->StoreObject($this->currentNode,$data) - if !$this->currentNode->schema->isa(ComplexNode); + if !$this->currentNode->schemaType->isa(ComplexNode); KEYLOOP: foreach my $key (keys %$data) { my $value = $data->{$key}; @@ -153,12 +149,6 @@ return $this->_navi->Current; } -sub buildErrors { - my ($this) = @_; - - return $this->_navi->buildErrors; -} - 1; __END__ @@ -191,7 +181,6 @@ my @errors; -push @errors, $transform->buildErrors; push @errors, $schema->Validate($doc); =end code @@ -263,12 +252,4 @@ По-умолчанию будет выполнено присваивание C<< $node->nodeValue($data) >>, однако это можно заменить, например, на преобразование в строку. -=head2 C - -Метод который используется для преобразования значений к правильным типам, -используя атрибут C элемента схемы. Этот метод можно использовать для -C, однако по-умолчанию он не используется, поскольку -предполагается, что входной объект имеет уже преобразованные значения в своих -свойствах. - =cut \ No newline at end of file diff -r 4bdf155e5bfe -r 4cc6cc370fb2 Lib/IMPL/DOM/Transform/QueryToDOM.pm --- a/Lib/IMPL/DOM/Transform/QueryToDOM.pm Tue Feb 11 01:06:40 2014 +0400 +++ b/Lib/IMPL/DOM/Transform/QueryToDOM.pm Tue Feb 11 01:13:47 2014 +0400 @@ -32,7 +32,7 @@ my ($this,$data) = @_; $this->currentNode->nodeProperty( rawValue => $data ); - $this->currentNode->nodeValue( $this->inflateNodeValue($data) ); + $this->currentNode->nodeValue( $data ); return $this->currentNode; } diff -r 4bdf155e5bfe -r 4cc6cc370fb2 Lib/IMPL/Web/View/Metadata/FormMeta.pm --- a/Lib/IMPL/Web/View/Metadata/FormMeta.pm Tue Feb 11 01:06:40 2014 +0400 +++ b/Lib/IMPL/Web/View/Metadata/FormMeta.pm Tue Feb 11 01:13:47 2014 +0400 @@ -96,6 +96,7 @@ sub _IsOwnError { my ($nodes,$source,$err) = @_; + #TODO: review filter return 1 if ($err->node && grep($err->node == $_, @$nodes)) || (not(@$nodes) && $err->schema == $source ); return 0; @@ -133,7 +134,7 @@ my $schema = $navi->NavigateName($decl->name); $navi->SchemaBack(); - my @nodes = $this->model && $this->model->selectNodes( sub { $_->schemaSource == $decl } ); + my @nodes = $this->model && $this->model->selectNodes( sub { $_->schemaNode == $decl } ); my %args = ( name => $decl->name,