Mercurial > pub > Impl
comparison Lib/IMPL/Serialization.pm @ 202:5146e17a7b76
IMPL::Web::Application::RestResource fixes, documentation
| author | sergey |
|---|---|
| date | Wed, 25 Apr 2012 02:49:23 +0400 |
| parents | e743a8481327 |
| children | f534a60d5b01 |
comparison
equal
deleted
inserted
replaced
| 201:0c018a247c8a | 202:5146e17a7b76 |
|---|---|
| 240 if ((not defined($rhObject)) && $rhPrevObject) { | 240 if ((not defined($rhObject)) && $rhPrevObject) { |
| 241 $this->{$CurrentObject} = $rhPrevObject; | 241 $this->{$CurrentObject} = $rhPrevObject; |
| 242 return 1; | 242 return 1; |
| 243 } | 243 } |
| 244 | 244 |
| 245 my $refObj = $this->{$ObjectFactory} ?$this->{$ObjectFactory}->($rhObject->{'Type'},$rhObject->{'Data'},$rhObject->{'Id'} ? $this->{$Context}->{$rhObject->{'Id'}} : undef) : DefaultFactory($rhObject->{'Type'},$rhObject->{'Data'} || [],$rhObject->{'Id'} ? $this->{$Context}->{$rhObject->{'Id'}} : undef); | 245 my $refObj = $this->{$ObjectFactory} ?$this->{$ObjectFactory}->($rhObject->{'Type'},$rhObject->{'Data'},$rhObject->{'Id'} ? $this->{$Context}->{$rhObject->{'Id'}} : undef) : DefaultFactory($rhObject->{'Type'},$rhObject->{'Data'},$rhObject->{'Id'} ? $this->{$Context}->{$rhObject->{'Id'}} : undef); |
| 246 | 246 |
| 247 die new Exception("Trying to close a non existing oject") if not $rhObject; | 247 die new Exception("Trying to close a non existing oject") if not $rhObject; |
| 248 | 248 |
| 249 my $Data; | 249 my $Data; |
| 250 | 250 |
| 327 return $refSurogate; | 327 return $refSurogate; |
| 328 } else { | 328 } else { |
| 329 return \$Data; | 329 return \$Data; |
| 330 } | 330 } |
| 331 } elsif ($Type eq 'ARRAY') { | 331 } elsif ($Type eq 'ARRAY') { |
| 332 $Data ||= []; | |
| 332 die new Exception("Invalid a deserialization context when deserializing ARRAY") if not ref $Data and defined $Data; | 333 die new Exception("Invalid a deserialization context when deserializing ARRAY") if not ref $Data and defined $Data; |
| 333 if (not ref $refSurogate) { | 334 if (not ref $refSurogate) { |
| 334 my @Array; | 335 my @Array; |
| 335 $refSurogate = \@Array; | 336 $refSurogate = \@Array; |
| 336 } | 337 } |
| 337 for (my $i = 0; $i < scalar(@{$Data})/2; $i++) { | 338 for (my $i = 0; $i < scalar(@{$Data})/2; $i++) { |
| 338 push @$refSurogate,$Data->[$i*2+1]; | 339 push @$refSurogate,$Data->[$i*2+1]; |
| 339 } | 340 } |
| 340 return $refSurogate; | 341 return $refSurogate; |
| 341 } elsif ($Type eq 'HASH') { | 342 } elsif ($Type eq 'HASH') { |
| 343 $Data ||= []; | |
| 342 die new Exception("Invalid a deserialization context when deserializing HASH") if not ref $Data and defined $Data; | 344 die new Exception("Invalid a deserialization context when deserializing HASH") if not ref $Data and defined $Data; |
| 343 if (not ref $refSurogate) { | 345 if (not ref $refSurogate) { |
| 344 $refSurogate = {}; | 346 $refSurogate = {}; |
| 345 } | 347 } |
| 346 for (my $i = 0; $i< @$Data; $i+= 2) { | 348 for (my $i = 0; $i< @$Data; $i+= 2) { |
| 347 $refSurogate->{$Data->[$i]} = $Data->[$i+1]; | 349 $refSurogate->{$Data->[$i]} = $Data->[$i+1]; |
| 348 } | 350 } |
| 349 return $refSurogate; | 351 return $refSurogate; |
| 350 } elsif ($Type eq 'REF') { | 352 } elsif ($Type eq 'REF') { |
| 353 $Data ||= []; | |
| 351 die new Exception("Invalid a deserialization context when deserializing REF") if not ref $Data and defined $Data; | 354 die new Exception("Invalid a deserialization context when deserializing REF") if not ref $Data and defined $Data; |
| 352 if (not ref $refSurogate) { | 355 if (not ref $refSurogate) { |
| 353 my $ref = $Data->[1]; | 356 my $ref = $Data->[1]; |
| 354 return \$ref; | 357 return \$ref; |
| 355 } else { | 358 } else { |
