--- nfo/perl/libs/Data/Storage/Handler/Abstract.pm 2003/01/19 02:31:51 1.10 +++ nfo/perl/libs/Data/Storage/Handler/Abstract.pm 2003/01/20 16:43:18 1.11 @@ -1,7 +1,12 @@ -## -------------------------------------------------------------------------------- -## $Id: Abstract.pm,v 1.10 2003/01/19 02:31:51 joko Exp $ -## -------------------------------------------------------------------------------- +## ------------------------------------------------------------------------ +## $Id: Abstract.pm,v 1.11 2003/01/20 16:43:18 joko Exp $ +## ------------------------------------------------------------------------ ## $Log: Abstract.pm,v $ +## Revision 1.11 2003/01/20 16:43:18 joko +## + better argument-property merging +## + debugging-output !!! +## + abstract-dummy 'sub createChildNode' +## ## Revision 1.10 2003/01/19 02:31:51 joko ## + fix to 'sub AUTOLOAD' ## @@ -33,7 +38,7 @@ ## ## Revision 1.1 2002/10/10 03:44:07 cvsjoko ## + new -## -------------------------------------------------------------------------------- +## ------------------------------------------------------------------------ package Data::Storage::Handler::Abstract; @@ -43,9 +48,12 @@ use base qw( DesignPattern::Object ); + use Data::Dumper; use Tie::SecureHash; #use Data::Storage::Handler; +use Data::Transform::Deep qw( merge ); + # get logger instance my $logger = Log::Dispatch::Config->instance; @@ -95,15 +103,24 @@ #=cut # merge passed-in arguments to constructor as properties into already blessed secure object - + # mungle arguments from array into hash - perl does the job ;) - my %args = @_; - + #my %args = @_; + #my %args = (); + +#print Dumper(@_); + # merge attributes one-by-one # TODO: deep_copy? / merge_deep? - foreach (keys %args) { - #print "key: $_", "\n"; - $self->{$_} = $args{$_}; + while (my $elemName = shift @_) { + #print "elemName: $elemName", "\n"; + if (my $elemValue = shift @_) { + #print Dumper($elemValue); + #print "elemName=$elemName, elemValue=$elemValue", "\n"; + $self->{$elemName} = $elemValue; + } + #$self->{$_} = $args{$_}; + #$self->{$_} = $args{$_}; } # V3 - rolling our own security (just for {COREHANDLE} - nothing else) - nope, Tie::SecureHash works wonderful @@ -158,7 +175,7 @@ # this is to prevent deep recursion's return if lc $methodname eq 'exists'; -#print "$methodname - 1", "\n"; +print "$methodname - 1", "\n"; # TODO: enhance logging/debugging #if (!$self->exists('COREHANDLE')) { return; } @@ -171,7 +188,7 @@ } $self->{lock_info}->{last_method} = $methodname; -#print "$methodname - 2", "\n"; +print "$methodname - 2", "\n"; #print Dumper($self); #exit; @@ -316,6 +333,11 @@ $self->_abstract_function('sendCommand'); } + sub createChildNode { + my $self = shift; + $self->_abstract_function('createChildNode'); + } + sub existsChildNode_tmp { my $self = shift; $self->_abstract_function('existsChildNode');