Changeset 21550

Show
Ignore:
Timestamp:
21.01.2010 14:00:10 (9 years ago)
Author:
mdewsnip
Message:

Added to dbutil.pm two new general functions: convert_infodb_string_to_hash() and convert_infodb_hash_to_string(). These will replace GDBMUtils::parseStringToHash() and GDBMUtils::serializeHash().

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone2/perllib/dbutil.pm

    r21547 r21550  
    259259 
    260260 
     261# ---- GENERAL FUNCTIONS -------- 
     262 
     263sub convert_infodb_hash_to_string 
     264{ 
     265  my $infodb_map = shift(@_); 
     266 
     267  my $infodb_entry_value = ""; 
     268  foreach my $infodb_value_key (keys(%$infodb_map)) 
     269  { 
     270    foreach my $infodb_value (@{$infodb_map->{$infodb_value_key}}) 
     271    { 
     272      $infodb_entry_value .= "<$infodb_value_key>" . $infodb_value . "\n"; 
     273    } 
     274  } 
     275 
     276  return $infodb_entry_value; 
     277} 
     278 
     279 
     280sub convert_infodb_string_to_hash 
     281{ 
     282  my $infodb_entry_value = shift(@_); 
     283 
     284  my $infodb_map = (); 
     285  while ($infodb_entry_value =~ /^<(.*?)>(.*)$/mg) 
     286  { 
     287    my $infodb_value_key = $1; 
     288    my $infodb_value = $2; 
     289 
     290    if (!defined($infodb_map->{$infodb_value_key})) 
     291    { 
     292      $infodb_map->{$infodb_value_key} = [ $infodb_value ]; 
     293    } 
     294    else 
     295    { 
     296      push(@{$infodb_map->{$infodb_value_key}}, $infodb_value); 
     297    } 
     298  } 
     299 
     300  return $infodb_map; 
     301} 
     302 
     303 
    2613041;