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,