source: main/trunk/greenstone2/perllib/extrametautil.pm@ 36373

Last change on this file since 36373 was 36373, checked in by kjdon, 21 months ago

now I have removed commented out code from last commit

File size: 3.7 KB
Line 
1###########################################################################
2#
3# extrametautil.pm -- various useful utilities
4# A component of the Greenstone digital library software
5# from the New Zealand Digital Library Project at the
6# University of Waikato, New Zealand.
7#
8# Copyright (C) 1999 New Zealand Digital Library Project
9#
10# This program is free software; you can redistribute it and/or modify
11# it under the terms of the GNU General Public License as published by
12# the Free Software Foundation; either version 2 of the License, or
13# (at your option) any later version.
14#
15# This program is distributed in the hope that it will be useful,
16# but WITHOUT ANY WARRANTY; without even the implied warranty of
17# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18# GNU General Public License for more details.
19#
20# You should have received a copy of the GNU General Public License
21# along with this program; if not, write to the Free Software
22# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23#
24###########################################################################
25
26package extrametautil;
27
28use strict;
29
30use util;
31#use Encode;
32#use File::Copy;
33use File::Basename;
34
35
36# extrametakeys - an array that contains all the filenames for which we have
37# some added metadata
38#---------------------------------
39sub addmetakey {
40 my ($extrametakeys, $filename_re_for_metadata) = @_;
41 push(@$extrametakeys, $filename_re_for_metadata);
42}
43
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
1041;
Note: See TracBrowser for help on using the repository browser.