/[cvs]/nfo/perl/libs/Data/Storage/Handler/Tangram.pm
ViewVC logotype

Diff of /nfo/perl/libs/Data/Storage/Handler/Tangram.pm

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

revision 1.25 by joko, Sun Jan 19 02:30:05 2003 UTC revision 1.27 by joko, Fri Jan 31 06:30:59 2003 UTC
# Line 3  Line 3 
3  #  $Id$  #  $Id$
4  #  #
5  #  $Log$  #  $Log$
6    #  Revision 1.27  2003/01/31 06:30:59  joko
7    #  + enabled 'sendQuery'
8    #
9    #  Revision 1.26  2003/01/30 22:29:47  joko
10    #  + fixed module usage (removed dependency on 'libp.pm')
11    #
12  #  Revision 1.25  2003/01/19 02:30:05  joko  #  Revision 1.25  2003/01/19 02:30:05  joko
13  #  + fix: modified call to '_initSchema'  #  + fix: modified call to '_initSchema'
14  #  #
# Line 110  use base ("Data::Storage::Handler::Abstr Line 116  use base ("Data::Storage::Handler::Abstr
116    
117  use Tangram;  use Tangram;
118  use Data::Dumper;  use Data::Dumper;
119  use libp qw( getNewPerlObjectByPkgName );  use DesignPattern::Object;
120  use Data::Storage::Result::Tangram;  use Data::Storage::Result::Tangram;
121  use Data::Compare::Struct qw( isEmpty );  use Data::Compare::Struct qw( isEmpty );
122  use Data::Transform::Deep qw( object2hash );  use Data::Transform::Deep qw( object2hash );
123  use Data::Transform::Encode qw( var2utf8 );  use Data::Transform::Encode qw( var2utf8 );
124    
   
125  # get logger instance  # get logger instance
126  my $logger = Log::Dispatch::Config->instance;  my $logger = Log::Dispatch::Config->instance;
127    
# Line 136  sub _initSchema { Line 141  sub _initSchema {
141    my $self = shift;    my $self = shift;
142    $logger->debug( __PACKAGE__ . "->_initSchema()" );    $logger->debug( __PACKAGE__ . "->_initSchema()" );
143    #if (!$schema_tangram) {    #if (!$schema_tangram) {
144      my $obj = getNewPerlObjectByPkgName($self->{locator}->{schema}, { EXPORT_OBJECTS => $self->{locator}->{classnames}, want_transactions => $self->{locator}->{want_transactions} } );      #my $obj = getNewPerlObjectByPkgName($self->{locator}->{schema}, { EXPORT_OBJECTS => $self->{locator}->{classnames}, want_transactions => $self->{locator}->{want_transactions} } );
145        my $obj = DesignPattern::Object->fromPackage($self->{locator}->{schema}, { 'EXPORT_OBJECTS' => $self->{locator}->{classnames}, 'want_transactions' => $self->{locator}->{want_transactions} } );
146      $schema_tangram = $obj->getSchema();      $schema_tangram = $obj->getSchema();
147    #}    #}
148    if (!$schema_tangram) {    if (!$schema_tangram) {
# Line 314  sub configureCOREHANDLE { Line 320  sub configureCOREHANDLE {
320    $logger->debug( __PACKAGE__ . "->configureCOREHANDLE" );    $logger->debug( __PACKAGE__ . "->configureCOREHANDLE" );
321    
322    #my $subLayer = $self->_getSubLayerHandle();    #my $subLayer = $self->_getSubLayerHandle();
323      #print Dumper($self);
324      #exit;
325    
326    # apply configured modifications    # apply configured modifications
327      if (exists $self->{dbi}->{trace_level} && exists $self->{dbi}->{trace_file}) {      if (exists $self->{dbi}->{trace_level} && exists $self->{dbi}->{trace_file}) {
# Line 421  sub getListFiltered { Line 429  sub getListFiltered {
429    my @results;    my @results;
430    $logger->debug( __PACKAGE__ . "->getListFiltered( nodename => '" . $nodename . "' )" );    $logger->debug( __PACKAGE__ . "->getListFiltered( nodename => '" . $nodename . "' )" );
431    
432    #print Dumper($filters);  #print Dumper($filters);
433        
434    my @tfilters;    my @tfilters;
435        
# Line 460  sub getListFiltered { Line 468  sub getListFiltered {
468    # HACK: build eval-string (sorry) to get filtered list - please give advice here    # HACK: build eval-string (sorry) to get filtered list - please give advice here
469    my $evalstring = 'return $self->{_COREHANDLE}->select($remote, ' . $tfilter . ');';    my $evalstring = 'return $self->{_COREHANDLE}->select($remote, ' . $tfilter . ');';
470        
471      #print "eval: $evalstring", "\n";
472      
473    # get filtered list/set    # get filtered list/set
474    @results = eval($evalstring);    @results = eval($evalstring);
475    die $@ if $@;    die $@ if $@;
# Line 519  sub sendQuery { Line 529  sub sendQuery {
529      #return $self->createSet( $self->{COREHANDLE}->load('300090018') );      #return $self->createSet( $self->{COREHANDLE}->load('300090018') );
530    }    }
531    
532    die("This should not be reached for now - redirect to \$self->getListFiltered() here!");    my $list = $self->getListFiltered($query->{node}, $query->{criterias});
533      #return $self->createSet($object);
534      #return $self->createSet($list);
535      return $self->createSet(@$list);
536    
537      #die("This should not be reached for now - redirect to \$self->getListFiltered() here!");
538    
   # TODO: do a common tangram query here  
539    
540    
541    
542      # try a generic tangram query here
543      # TODO: try to place an oql on top of that (search.cpan.org!)
544    my @crits;    my @crits;
545    foreach (@{$query->{criterias}}) {    foreach (@{$query->{criterias}}) {
546      my $op = '';      my $op = '';
# Line 662  sub dropDb { Line 680  sub dropDb {
680    return $storage->dropDb();    return $storage->dropDb();
681  }  }
682    
683    sub testAvailability {
684      my $self = shift;
685      my $storage = $self->_getSubLayerHandle();
686      return $storage->testAvailability();
687    }
688    
689  1;  1;
690    __END__

Legend:
Removed from v.1.25  
changed lines
  Added in v.1.27

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