Author: spadkins
Date: Mon Apr  9 11:19:05 2007
New Revision: 9384

Modified:
   p5ee/trunk/App-Repository/lib/App/SessionObject/RepositoryObjectSet.pm

Log:
make get_index() subject to better, more rigorous index naming strategy

Modified: p5ee/trunk/App-Repository/lib/App/SessionObject/RepositoryObjectSet.pm
==============================================================================
--- p5ee/trunk/App-Repository/lib/App/SessionObject/RepositoryObjectSet.pm      
(original)
+++ p5ee/trunk/App-Repository/lib/App/SessionObject/RepositoryObjectSet.pm      
Mon Apr  9 11:19:05 2007
@@ -292,12 +292,13 @@
 sub get_key_columns {
     &App::sub_entry if ($App::trace);
     my ($self) = @_;
-    my $repname = $self->{repository};
-    my $context = $self->{context};
-    my $rep     = $context->repository($repname);
-    my $table   = $self->{table} || die "table not defined";
-    my $column_defs = $rep->{table}{$table}{column};
-    my $columns = $self->{columns};
+    my $repname     = $self->{repository};
+    my $context     = $self->{context};
+    my $rep         = $context->repository($repname);
+    my $table       = $self->{table} || die "table not defined";
+    my $table_def   = $rep->get_table_def($table);
+    my $column_defs = $table_def->{column};
+    my $columns     = $self->{columns};
     if (!$columns) {
         $columns = $rep->_get_default_columns($table);
         $self->{columns} = $columns;
@@ -320,7 +321,8 @@
     my $repname     = $self->{repository};
     my $rep         = $context->repository($repname);
     my $table       = $self->{table} || die "table not defined";
-    my $column_defs = $rep->{table}{$table}{column};
+    my $table_def   = $rep->get_table_def($table);
+    my $column_defs = $table_def->{column};
     &App::sub_exit($column_defs) if ($App::trace);
     return($column_defs);
 }
@@ -333,9 +335,10 @@
     &App::sub_entry if ($App::trace);
     my $self = shift;
     my $options = (ref($_[0]) eq "HASH") ? shift : {};
-    my $key_name = ref($_[0]) ? "ie1" : shift;
-    $key_name ||= "ie1";
+    my $key_name = ref($_[0]) ? "" : shift;
     my $key_columns = shift;
+    $key_name = join(",", @$key_columns) if (!$key_name && ref($key_columns) 
eq "ARRAY");
+    $key_name ||= "ie1";
 
     $self->_clear_cache_if_auto_params_changed($options) if (defined 
$self->{auto_params});
     $self->_clear_cache_if_objects_expired($options) if ((defined 
$options->{max_age} || defined $self->{max_age}) && $self->{objects});
@@ -371,9 +374,10 @@
     &App::sub_entry if ($App::trace);
     my $self = shift;
     my $options = (ref($_[0]) eq "HASH") ? shift : {};
-    my $key_name = ref($_[0]) ? "ak1" : shift;
-    $key_name ||= "ak1";
+    my $key_name = ref($_[0]) ? "" : shift;
     my $key_columns = shift;
+    $key_name = join(",", @$key_columns) if (!$key_name && ref($key_columns) 
eq "ARRAY");
+    $key_name ||= "ak1";
 
     $self->_clear_cache_if_auto_params_changed($options) if (defined 
$self->{auto_params});
     $self->_clear_cache_if_objects_expired($options) if ((defined 
$options->{max_age} || defined $self->{max_age}) && $self->{objects});
@@ -483,8 +487,10 @@
     my $self = shift;
     my $options = (ref($_[0]) eq "HASH") ? shift : {};
     my $key = shift;
-    my $key_name = ref($_[0]) ? "ak1" : shift;
+    my $key_name = ref($_[0]) ? "" : shift;
     my $key_columns = shift;
+    $key_name = join(",", @$key_columns) if (!$key_name && ref($key_columns) 
eq "ARRAY");
+    $key_name ||= "ak1";
 
     $self->_clear_cache_if_auto_params_changed($options) if (defined 
$self->{auto_params});
     $self->_clear_cache_if_objects_expired($options) if ((defined 
$options->{max_age} || defined $self->{max_age}) && $self->{objects});
@@ -505,15 +511,16 @@
     my $options = (ref($_[0]) eq "HASH") ? shift : {};
     my $key = shift;
     die "key not scalar" if (ref($key));
-    my $key_name = ref($_[0]) ? "ie1" : shift;
+    my $key_name = ref($_[0]) ? "" : shift;
     my $key_columns = shift;
+    $key_name = join(",", @$key_columns) if (!$key_name && ref($key_columns) 
eq "ARRAY");
+    $key_name ||= "ie1";
 
     $self->_clear_cache_if_auto_params_changed($options) if (defined 
$self->{auto_params});
     $self->_clear_cache_if_objects_expired($options) if ((defined 
$options->{max_age} || defined $self->{max_age}) && $self->{objects});
 
     my ($objects);
     if ($key) {
-        $key_name ||= "ie1";
         my $index = $self->get_index($key_name, $key_columns);
         $objects = $index->{$key} || [];
     }

Reply via email to