Ignore:
Timestamp:
2015-12-03T15:44:18+13:00 (8 years ago)
Author:
jmt12
Message:

First versions of these drivers, that should be further refined to move repeated code to a parent class

File:
1 edited

Legend:

Unmodified
Added
Removed
  • gs2-extensions/tdb/trunk/perllib/DBDrivers/JDBM.pm

    r30318 r30338  
    3232use util;
    3333use FileUtils;
    34 use DBDrivers::BaseDBDriver;
     34# - OO inheritence
     35use parent 'DBDrivers::BaseDBDriver';
    3536
    3637sub BEGIN
    3738{
    38     @DBDrivers::JDBM::ISA = ( 'DBDrivers::BaseDBDriver' );
    39 }
    40 
     39    if (!defined $ENV{'GSDLHOME'} || !defined $ENV{'GSDLOS'}) {
     40        die("Error! Environment must be prepared by sourcing setup.bash\n");
     41    }
     42}
     43
     44
     45## @function constructor
     46#
    4147sub new
    4248{
    4349    my $class = shift(@_);
    44     return bless ($self, $class);
    45 }
     50    my $self = DBDrivers::BaseDBDriver->new();
     51    $self->{'default_file_extension'} = 'jdb';
     52    bless($self, $class);
     53    return $self;
     54}
     55## constructor() ##
     56
    4657
    4758# -----------------------------------------------------------------------------
     
    5465# be constructed that changes between much of the code that is used
    5566
     67# Handled by BaseDBDriver
     68# sub get_infodb_file_path {}
     69
     70
     71
    5672sub open_infodb_write_handle
    5773{
    58   my $infodb_file_path = shift(@_);
    59   my $opt_append = shift(@_);
    60 
    61   my $jdbmwrap_jar = &util::filename_cat($ENV{'GSDLHOME'},"bin","java", "JDBMWrapper.jar");
    62   my $jdbm_jar = &util::filename_cat($ENV{'GSDLHOME'},"lib","java", "jdbm.jar");
     74    my $self = shift(@_);
     75    my $infodb_file_path = shift(@_);
     76    my $opt_append = shift(@_);
     77    if (!defined $opt_append) {
     78    $opt_append = '';
     79    }
     80    $self->_debugPrint('("' . $infodb_file_path . '","' . $opt_append . '")');
     81
     82    my $jdbmwrap_jar = &FileUtils::filenameConcatenate($ENV{'GSDLHOME'},"bin","java", "JDBMWrapper.jar");
     83    my $jdbm_jar = &FileUtils::filenameConcatenate($ENV{'GSDLHOME'},"lib","java", "jdbm.jar");
    6384
    6485  my $classpath = &util::pathname_cat($jdbmwrap_jar,$jdbm_jar);
     
    7697  my $txt2jdb_cmd = "java -cp \"$classpath\" Txt2Jdb";
    7798
    78   if ((defined $opt_append) && ($opt_append eq "append")) {
     99  if ($opt_append eq "append") {
    79100      $txt2jdb_cmd .= " -append";
    80101      print STDERR "Append operation to $infodb_file_path\n";
     
    113134
    114135  close($infodb_handle);
    115 }
    116 
    117 
    118 sub get_infodb_file_path
    119 {
    120   my $collection_name = shift(@_);
    121   my $infodb_directory_path = shift(@_);
    122 
    123   my $infodb_file_extension = ".jdb";
    124   my $infodb_file_name = &util::get_dirsep_tail($collection_name) . $infodb_file_extension;
    125   return &util::filename_cat($infodb_directory_path, $infodb_file_name);
    126136}
    127137
Note: See TracChangeset for help on using the changeset viewer.