Mercurial > pub > Impl
comparison Lib/IMPL/DOM/Transform/ObjectToDOM.pm @ 387:4cc6cc370fb2
DOM refactoring
author | sergey |
---|---|
date | Tue, 11 Feb 2014 01:13:47 +0400 |
parents | f116cd9fe7d9 |
children | 2287c72f303a |
comparison
equal
deleted
inserted
replaced
386:4bdf155e5bfe | 387:4cc6cc370fb2 |
---|---|
61 | 61 |
62 sub currentNode { | 62 sub currentNode { |
63 shift->_navi->Current; | 63 shift->_navi->Current; |
64 } | 64 } |
65 | 65 |
66 sub inflateNodeValue { | |
67 shift->_navi->inflateValue(shift); | |
68 } | |
69 | |
70 sub TransformHash { | 66 sub TransformHash { |
71 my ($this,$data) = @_; | 67 my ($this,$data) = @_; |
72 | 68 |
73 die ArgumentException->new(data => 'A HASH reference is required') | 69 die ArgumentException->new(data => 'A HASH reference is required') |
74 unless ref $data eq 'HASH'; | 70 unless ref $data eq 'HASH'; |
75 | 71 |
76 return $this->StoreObject($this->currentNode,$data) | 72 return $this->StoreObject($this->currentNode,$data) |
77 if !$this->currentNode->schema->isa(ComplexNode); | 73 if !$this->currentNode->schemaType->isa(ComplexNode); |
78 | 74 |
79 KEYLOOP: foreach my $key (keys %$data) { | 75 KEYLOOP: foreach my $key (keys %$data) { |
80 my $value = $data->{$key}; | 76 my $value = $data->{$key}; |
81 | 77 |
82 if (ref $value eq 'ARRAY') { | 78 if (ref $value eq 'ARRAY') { |
151 } | 147 } |
152 | 148 |
153 return $this->_navi->Current; | 149 return $this->_navi->Current; |
154 } | 150 } |
155 | 151 |
156 sub buildErrors { | |
157 my ($this) = @_; | |
158 | |
159 return $this->_navi->buildErrors; | |
160 } | |
161 | |
162 1; | 152 1; |
163 | 153 |
164 __END__ | 154 __END__ |
165 | 155 |
166 =pod | 156 =pod |
189 | 179 |
190 my $form = $transform->Transform($data); | 180 my $form = $transform->Transform($data); |
191 | 181 |
192 my @errors; | 182 my @errors; |
193 | 183 |
194 push @errors, $transform->buildErrors; | |
195 push @errors, $schema->Validate($doc); | 184 push @errors, $schema->Validate($doc); |
196 | 185 |
197 =end code | 186 =end code |
198 | 187 |
199 =head1 DESCRIPTION | 188 =head1 DESCRIPTION |
261 является простым, а значени которое ему соответсвует является объектом (ссылкой). | 250 является простым, а значени которое ему соответсвует является объектом (ссылкой). |
262 | 251 |
263 По-умолчанию будет выполнено присваивание C<< $node->nodeValue($data) >>, однако | 252 По-умолчанию будет выполнено присваивание C<< $node->nodeValue($data) >>, однако |
264 это можно заменить, например, на преобразование в строку. | 253 это можно заменить, например, на преобразование в строку. |
265 | 254 |
266 =head2 C<inflateNodeValue($data)> | |
267 | |
268 Метод который используется для преобразования значений к правильным типам, | |
269 используя атрибут C<inflator> элемента схемы. Этот метод можно использовать для | |
270 C<TransformPlain>, однако по-умолчанию он не используется, поскольку | |
271 предполагается, что входной объект имеет уже преобразованные значения в своих | |
272 свойствах. | |
273 | |
274 =cut | 255 =cut |