--- nfo/perl/libs/Data/Storage/Handler/Abstract.pm 2003/01/20 16:43:18 1.11 +++ nfo/perl/libs/Data/Storage/Handler/Abstract.pm 2003/02/09 05:12:28 1.14 @@ -1,7 +1,16 @@ ## ------------------------------------------------------------------------ -## $Id: Abstract.pm,v 1.11 2003/01/20 16:43:18 joko Exp $ +## $Id: Abstract.pm,v 1.14 2003/02/09 05:12:28 joko Exp $ ## ------------------------------------------------------------------------ ## $Log: Abstract.pm,v $ +## Revision 1.14 2003/02/09 05:12:28 joko +## + quoting of strings used in sql-queries! +## +## Revision 1.13 2003/01/30 22:27:05 joko +## + added new abstract methods +## +## Revision 1.12 2003/01/30 21:46:32 joko +## + fixed behaviour of AUTOLOAD-method +## ## Revision 1.11 2003/01/20 16:43:18 joko ## + better argument-property merging ## + debugging-output !!! @@ -175,7 +184,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; } @@ -188,7 +197,7 @@ } $self->{lock_info}->{last_method} = $methodname; -print "$methodname - 2", "\n"; +#print "$methodname - 2", "\n"; #print Dumper($self); #exit; @@ -210,11 +219,15 @@ $handlertype ||= ''; my $err_msg_core = __PACKAGE__ . "[$handlertype]" . ": " . "COREHANDLE is undefined while trying to execute method \"$methodname\""; -print $err_msg_core, "\n"; - if ($self->exists('lock_info') && !$self->{lock_info}->{log_lock}) { + +#print $err_msg_core, "\n"; + + #if ($self->exists('lock_info') && !$self->{lock_info}->{log_lock}) { $logger->error( $err_msg_core ); - } + #} + return; + } #=cut @@ -295,10 +308,23 @@ sub existsChildNode { my $self = shift; my $nodename = shift; - #$nodename = 'TransactionRoutingTable'; - $logger->debug( __PACKAGE__ . "->existsChildNode( nodename $nodename )" ); + + # TODO: don't use $self->{meta}->{childnodes} directly in here + # get it returned from $self->getChildNodes()!!! + + $logger->debug( __PACKAGE__ . "->existsChildNode( nodename=$nodename )" ); $self->getChildNodes() unless $self->{meta}->{childnodes}; - my $result = grep(m/$nodename/i, @{$self->{meta}->{childnodes}}); # TODO: use "/i" only on win32-systems! + + # quote this, it might contain meta characters which don't work in a regex + $nodename = quotemeta($nodename); + + # trace + #print Dumper($self->{meta}); + #print "nodename: $nodename", "\n"; + + # FIXME: use "/i" only on win32-systems! + my $result = grep(m/$nodename/i, @{$self->{meta}->{childnodes}}); + return $result; } @@ -419,4 +445,28 @@ return; } + sub getDbName { + my $self = shift; + $self->_abstract_function('getDbName'); + return; + } + + sub testAvailability { + my $self = shift; + $self->_abstract_function('testAvailability'); + return; + } + + sub isConnected { + my $self = shift; + $self->_abstract_function('isConnected'); + return; + } + + sub testDsn { + my $self = shift; + $self->_abstract_function('testDsn'); + return; + } + 1;