Ignore:
Timestamp:
2022-08-16T19:38:05+12:00 (21 months ago)
Author:
kjdon
Message:

tidy up of extrametautil, renaming some methods to make them easier to understand, removing anything unused. then modifying plugins to use new methods. Also, moved some common code to MetadataRead function, can call this from several plugins instead of duplicating code. This is an interim commit, where I have left in the old code to make it easier to track changes. Next commit will have everything tidied up.

File:
1 edited

Legend:

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

    r29819 r36372  
    3434
    3535
    36 #******************* ADD: add extrametakey, add extrametadata *********************#
     36# extrametakeys - an array that contains all the filenames for which we have
     37# some added metadata
     38#---------------------------------
    3739sub addmetakey {
    3840    my ($extrametakeys, $filename_re_for_metadata) = @_;
     
    4042}
    4143
     44# extrametafiles - a hash on filenames (the files to which metadata will be
     45# associated), containing a hash of file->fullfilename for all the metadata
     46# files that metadata was obtained from
     47#-------------------------------------------
     48
     49sub addmetafile {
     50    my ($extrametafile, $filename_re_for_metadata, $file, $filename_full_path) = @_;
     51    if (!defined $extrametafile->{$filename_re_for_metadata}) {
     52    $extrametafile->{$filename_re_for_metadata} = {};
     53    }
     54    $extrametafile->{$filename_re_for_metadata}->{$file} = $filename_full_path;
     55}
     56
     57# was called setmetafile
     58sub setmetafilehash {
     59    my ($extrametafile, $filename_re_for_metadata, $file_hash) = @_;
     60    $extrametafile->{$filename_re_for_metadata} = $file_hash;
     61}
     62 
     63# was called getmetafile
     64sub getmetafilehash {
     65    my ($extrametafile, $filename_re_for_metadata) = @_;
     66    return $extrametafile->{$filename_re_for_metadata};
     67}
     68
     69# extrametadata - a hash on filenames (the files to which metadata will be
     70# associated), containing a hash of name->[value array] pairs of metadata
     71#----------------------------------------
     72
     73# set the metadata hash for a particular file
     74sub setmetadata {
     75    my ($extrametadata, $filename_re_for_metadata, $meta_hash) = @_;
     76    $extrametadata->{$filename_re_for_metadata} = $meta_hash;
     77}
     78
     79# gets the metadata hash for a particular file
     80sub getmetadata {
     81    my ($extrametadata, $filename_re_for_metadata) = @_;
     82    return $extrametadata->{$filename_re_for_metadata};
     83}
     84
     85# add a single value to a specific metadata field
     86sub addmetadatum {
     87    my ($extrametadata, $filename_re_for_metadata, $field_name, $value) = @_;
     88    if (!defined  $extrametadata->{$filename_re_for_metadata}->{$field_name}) {
     89    $extrametadata->{$filename_re_for_metadata}->{$field_name} = [];
     90    }
     91    my $metaname_vals = $extrametadata->{$filename_re_for_metadata}->{$field_name};
     92    push(@$metaname_vals, $value);
     93}
     94
     95# get a specific value for a particular metadata field
     96# e.g. $extrametadata->{$filename_re_for_metadata}->{"dc.Identifier"}->[0]
     97sub getmetadatum_by_index {
     98    my ($extrametadata, $filename_re_for_metadata, $metaname, $index) = @_;
     99    return $extrametadata->{$filename_re_for_metadata}->{$metaname}->[$index];
     100}
     101
     102#----------------------------------------------
     103#### unused below here
     104
    42105# Unused. Added for symmetry
    43 sub addmetadata {
     106sub addmetadata_UNUSED {
    44107    my ($extrametadata, $filename_re_for_metadata, $value) = @_;   
    45108    my $metanames = $extrametadata->{$filename_re_for_metadata};
     
    48111
    49112# Unused. Added for symmetry
    50 sub addmetafile {
     113sub addmetafile_UNUSED {
    51114    my ($extrametafile, $filename_re_for_metadata, $file) = @_;
    52115    my $metafiles = $extrametafile->{$filename_re_for_metadata};
     
    54117}
    55118
    56 sub addmetadata_for_named_metaname { # e.g. push(@{$extrametadata->{$filename_re_for_metadata}->{$field_name}}, $value);
     119sub addmetadata_for_named_metaname_OLD { # e.g. push(@{$extrametadata->{$filename_re_for_metadata}->{$field_name}}, $value);
    57120    my ($extrametadata, $filename_re_for_metadata, $field_name, $value) = @_;
    58121    my $metaname_vals = $extrametadata->{$filename_re_for_metadata}->{$field_name};
     
    61124
    62125# Unused. Added for symmetry
    63 sub addmetafile_for_named_file {   
     126sub addmetafile_for_named_file_UNUSED {
    64127    my ($extrametafile, $filename_re_for_metadata, $file, $filename_full_path) = @_;
    65128    my $metafile_vals = $extrametafile->{$filename_re_for_metadata}->{$file};
     
    73136
    74137#******************* GET methods
    75 sub getmetadata {
    76     my ($extrametadata, $filename_re_for_metadata) = @_;
    77     return $extrametadata->{$filename_re_for_metadata};
    78 }
    79138
    80 sub getmetafile {
    81     my ($extrametafile, $filename_re_for_metadata) = @_;
    82     return $extrametafile->{$filename_re_for_metadata};
    83 }
    84139
    85 sub getmetadata_for_named_metaname {
     140sub getmetadata_for_named_metaname_OLD {
    86141    my ($extrametadata, $filename_re_for_metadata, $field_name) = @_;
    87142    return $extrametadata->{$filename_re_for_metadata}->{$field_name}; # e.g. $extrametadata->{$filename_re_for_metadata}->{$field_name}
     
    89144
    90145# Unused. Added for symmetry
    91 sub getmetadata_for_named_file {
     146sub getmetafile_for_named_file_UNUSED {
    92147    my ($extrametafile, $filename_re_for_metadata, $file) = @_;
    93148    return $extrametafile->{$filename_re_for_metadata}->{$file};
    94149}
    95150
    96 sub getmetadata_for_named_pos {
    97     my ($extrametadata, $filename_re_for_metadata, $metaname, $index) = @_;
    98     return $extrametadata->{$filename_re_for_metadata}->{$metaname}->[$index]; # e.g. $extrametadata->{$filename_re_for_metadata}->{"dc.Identifier"}->[0]
    99 }
    100151
    101152
    102153#******************* SET methods
    103 sub setmetadata {
    104     my ($extrametadata, $filename_re_for_metadata, $value) = @_;
    105     $extrametadata->{$filename_re_for_metadata} = $value;
     154
     155# set an individual name-value pair in the metadata hash for a particular file
     156sub setmetadata_for_named_metaname_OLD {
     157    my ($extrametadata, $filename_re_for_metadata, $field_name, $value) = @_;
     158    $extrametadata->{$filename_re_for_metadata}->{$field_name} = $value;
    106159}
    107 
    108 sub setmetafile { # e.g. $extrametafile{$filename_re_for_metadata} = $file;
    109     my ($extrametafile, $filename_re_for_metadata, $file) = @_;
     160sub setmetafile_UNUSED { # e.g. $extrametafile{$filename_re_for_metadata} = $file;
     161    my ($extrametafile, $filename_re_for_metadata, $file, $filename_full_path) = @_;
    110162    $extrametafile->{$filename_re_for_metadata} = $file;
    111163}
    112164
    113 sub setmetadata_for_named_metaname {
    114     my ($extrametadata, $filename_re_for_metadata, $field_name, $value) = @_;
    115     $extrametadata->{$filename_re_for_metadata}->{$field_name} = $value;
    116 }
    117 
    118 sub setmetafile_for_named_file {
     165sub setmetafile_for_named_file_OLD {
    119166    my ($extrametafile, $filename_re_for_metadata, $file, $filename_full_path) = @_;
    120167    $extrametafile->{$filename_re_for_metadata}->{$file} = $filename_full_path;
     
    122169
    123170# Unused. Added for symmetry
    124 sub setmetadata_for_named_pos {
     171sub setmetadata_for_named_pos_UNUSED {
    125172    my ($extrametadata, $filename_re_for_metadata, $metaname, $index, $value) = @_;
    126173    $extrametadata->{$filename_re_for_metadata}->{$metaname}->[$index] =  $value;
Note: See TracChangeset for help on using the changeset viewer.