[Bio] / FigKernelPackages / FIGMODELTable.pm Repository:
ViewVC logotype

Diff of /FigKernelPackages/FIGMODELTable.pm

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

revision 1.12, Fri Dec 11 21:37:02 2009 UTC revision 1.13, Fri Mar 5 21:16:26 2010 UTC
# Line 999  Line 999 
999          return $self->{_metadata}->{$key};          return $self->{_metadata}->{$key};
1000  }  }
1001    
1002    =head3 add_column
1003    Definition:
1004            FIGMODELTable->add_column(array, string);
1005            FIGMODELTable->add_column(function(hash), string);
1006    Descrition:
1007            Adds a column to the table under column name string. If the first
1008            argument is an array, it places the content of the i-th elment of
1009            the array in row i for the new column. If the first argument is a
1010            function operating over a hash, the output of that function
1011            run over the i-th row is placed in the new column for row i.
1012            Just be sure to pass function sub foo { ... } as \&PACKAGE::PATH::foo
1013    =cut
1014    sub add_column {
1015            my ($self, $arg, $column_name) = @_;
1016            if( ref($arg) == 'CODE' ) {
1017                    # $arg is a function, apply to all rows
1018                    my @columnData = [];
1019                    for( my $i = 0; $i < $self->size(); $i++ ) {
1020                            my $row = $self->get_row($i);
1021                            my $entry = &$arg($row);
1022                            $row->{$column_name} = $entry;
1023                    }
1024            } elsif ( ref($arg) == 'ARRAY' ) {
1025                    for( my $i = 0; $i < $self->size(); $i++ ) {
1026                            if( $i > @{$arg} ) { return; }
1027                            my $row = $self->get_row($i);
1028                            $row->{$column_name} = $arg->[$i];
1029                    }
1030            }
1031    }
1032    
1033    
1034    =head3 remove_column
1035    Defintion:
1036            FIGMODELTable->remove_column(string)
1037    Description:
1038            Removes column whose name matches string.
1039    =cut
1040    sub remove_column {
1041            my ($self, $column_name) = @_;
1042            for( my $i = 0; $i < $self->size(); $i++ ) {
1043                    my $row = $self->get_row($i);
1044                    if(defined($row->{$column_name})) {
1045                            delete($row->{$column_name});
1046                    }
1047            }
1048    }
1049    
1050    
1051    
1052    

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.13

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3