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 |
