/[cvs]/nfo/perl/libs/Data/Mungle/Transform/Deep.pm
ViewVC logotype

Diff of /nfo/perl/libs/Data/Mungle/Transform/Deep.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.14 by jonen, Sat Feb 22 17:13:55 2003 UTC revision 1.21 by joko, Wed Apr 9 07:21:56 2003 UTC
# Line 2  Line 2 
2  ##  $Id$  ##  $Id$
3  ## ---------------------------------------------------------------------------  ## ---------------------------------------------------------------------------
4  ##  $Log$  ##  $Log$
5    ##  Revision 1.21  2003/04/09 07:21:56  joko
6    ##  childObj2string now inside Encode.pm, renamed to 'twingle_reference'
7    ##
8    ##  Revision 1.20  2003/04/04 17:31:23  joko
9    ##  minor update to 'childObj2string'
10    ##
11    ##  Revision 1.19  2003/03/28 03:11:25  jonen
12    ##  + bugfix
13    ##
14    ##  Revision 1.18  2003/03/28 03:07:26  jonen
15    ##  + minor changes
16    ##
17    ##  Revision 1.17  2003/03/27 15:17:07  joko
18    ##  namespace fixes for Data::Mungle::*
19    ##
20    ##  Revision 1.16  2003/03/27 15:04:52  joko
21    ##  minor update: comment
22    ##
23    ##  Revision 1.15  2003/02/27 14:39:48  jonen
24    ##  + fixed bug at _hash2object()
25    ##
26  ##  Revision 1.14  2003/02/22 17:13:55  jonen  ##  Revision 1.14  2003/02/22 17:13:55  jonen
27  ##  + added function 'childObject2string()' to encode 'child'-references to option related string  ##  + added function 'childObject2string()' to encode 'child'-references to option related string
28  ##  + use new option at 'expand()' for replacing 'childObject2string'  ##  + use new option at 'expand()' for replacing 'childObject2string'
# Line 53  Line 74 
74  ## ---------------------------------------------------------------------------  ## ---------------------------------------------------------------------------
75    
76    
77  package Data::Transform::Deep;  package Data::Mungle::Transform::Deep;
78    
79  use strict;  use strict;
80  use warnings;  use warnings;
# Line 72  use Data::Dumper; Line 93  use Data::Dumper;
93  use Iterate;  use Iterate;
94    
95  use Pitonyak::DeepCopy;  use Pitonyak::DeepCopy;
96  use Data::Transform::Encode qw( latin_to_utf8 latin_to_utf8_scalar utf8_to_latin utf8_to_latin_scalar );  use Data::Mungle::Transform::Encode qw( latin_to_utf8 latin_to_utf8_scalar utf8_to_latin utf8_to_latin_scalar twingle_reference );
97  use Data::Code::Ref qw( ref_slot );  use Data::Mungle::Code::Ref qw( ref_slot );
98    
99  sub numhash2list {  sub numhash2list {
100    my $vref = shift;    my $vref = shift;
# Line 163  sub expand { Line 184  sub expand {
184          # if $options->{childObj2string} is TRUE or STRING don't expand referenced object,          # if $options->{childObj2string} is TRUE or STRING don't expand referenced object,
185          # instead replace it by per option choosed string (default: o_<classname>_<ref type>_<guid> )          # instead replace it by per option choosed string (default: o_<classname>_<ref type>_<guid> )
186          if ($item && $options->{childObj2string}) {          if ($item && $options->{childObj2string}) {
187            $item = childObj2string($item, $options->{childObj2string});            $item = twingle_reference($item);
188          } else {          } else {
189            # ... expand structure recursively            # ... expand structure recursively
190            $item = expand($_[0], $options);            $item = expand($_[0], $options);
# Line 200  sub expand { Line 221  sub expand {
221          # if $options->{childObj2string} is TRUE or STRING don't expand referenced object,          # if $options->{childObj2string} is TRUE or STRING don't expand referenced object,
222          # instead replace it by per option choosed string (default: o_<classname>_<ref type>_<guid> )          # instead replace it by per option choosed string (default: o_<classname>_<ref type>_<guid> )
223          if ($item && $options->{childObj2string} && !(ref $_[1] eq "ARRAY") && !(ref $_[1] eq "HASH")) {          if ($item && $options->{childObj2string} && !(ref $_[1] eq "ARRAY") && !(ref $_[1] eq "HASH")) {
224            $item = childObj2string($item, $options->{childObj2string});            $item = twingle_reference($item);
225          } else {          } else {
226            # ... expand structure recursively            # ... expand structure recursively
227            $item = expand($_[1], $options);            $item = expand($_[1], $options);
# Line 288  sub _var_traverse_mixin_update_old { Line 309  sub _var_traverse_mixin_update_old {
309  sub merge_to {  sub merge_to {
310    _hash2object(@_);    _hash2object(@_);
311    # TODO:    # TODO:
312    # re-implement using CPAN's "Iterate".    # re-implement using CPAN's "Iterate" and/or a modified Hash::Merge.
313  }  }
314    
315    
# Line 305  sub _hash2object { Line 326  sub _hash2object {
326    numhash2list($data) if ($options->{php});    numhash2list($data) if ($options->{php});
327    
328    # utf8-conversion/-encoding (essential for I18N)    # utf8-conversion/-encoding (essential for I18N)
329    var_utf2iso($data) if ($options->{utf8});    utf8_to_latin($data) if ($options->{utf8});
330    
331    # get fresh object from database    # get fresh object from database
332    # todo:    # todo:
# Line 476  sub deep_copy { Line 497  sub deep_copy {
497  }  }
498    
499    
 sub childObj2string {  
   my $obj = shift;  
   my $option = shift;  
   my $classname = ref $obj;  
     
   if($option == 1) {  
     my $string = "o_" . $classname . "_" .$obj->{guid};  
     return $string;  
   }    
 }  
   
   
500  1;  1;
501  __END__  __END__

Legend:
Removed from v.1.14  
changed lines
  Added in v.1.21

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed