Mercurial > pub > Impl
changeset 387:4cc6cc370fb2
DOM refactoring
author | sergey |
---|---|
date | Tue, 11 Feb 2014 01:13:47 +0400 |
parents | 4bdf155e5bfe |
children | 648dfaf642e0 |
files | Lib/IMPL/DOM/Transform/ObjectToDOM.pm Lib/IMPL/DOM/Transform/QueryToDOM.pm Lib/IMPL/Web/View/Metadata/FormMeta.pm |
diffstat | 3 files changed, 4 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- 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<inflateNodeValue($data)> - -Метод который используется для преобразования значений к правильным типам, -используя атрибут C<inflator> элемента схемы. Этот метод можно использовать для -C<TransformPlain>, однако по-умолчанию он не используется, поскольку -предполагается, что входной объект имеет уже преобразованные значения в своих -свойствах. - =cut \ No newline at end of file
--- 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; }
--- 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,