NAME
METS::Files - Class for METS files manipulation.
SYNOPSIS
use
METS::Files;
my
$obj
= METS::Files->new(
'mets_data'
=>
$mets_data
,
);
my
@files
=
$obj
->get_use_files(
$use
);
my
@types
=
$obj
->get_use_types;
METHODS
new
my
$obj
= METS::Files->new(
'mets_data'
=>
$mets_data
,
);
Constructor.
mets_data
METS data.
Parameter is required.
Returns instance of object.
get_use_files
my
@files
=
$obj
->get_use_files(
$use
);
Get "USE" files defined by $use
variable.
Returns array with files.
get_use_types
my
@types
=
$obj
->get_use_types;
Get "USE" types.
Returns array with types.
ERRORS
new():
Parameter
'mets_data'
is required.
From Class::Utils::set_params():
Unknown parameter
'%s'
.
EXAMPLE1
use
strict;
use
warnings;
use
Data::Printer;
use
METS::Files;
# Arguments.
if
(
@ARGV
< 1) {
STDERR
"Usage: $0 mets_file\n"
;
exit
1;
}
my
$mets_file
=
$ARGV
[0];
# Get mets data.
my
$mets_data
= slurp(
$mets_file
);
# Object.
my
$obj
= METS::Files->new(
'mets_data'
=>
$mets_data
,
);
# Get files.
my
$files_hr
;
foreach
my
$use
(
$obj
->get_use_types) {
$files_hr
->{
$use
} = [
$obj
->get_use_files(
$use
)];
}
# Dump to output.
p
$files_hr
;
# Output without arguments like:
# Usage: __SCRIPT__ mets_file
EXAMPLE2
use
strict;
use
warnings;
use
Data::Printer;
use
METS::Files;
# Example METS data.
my
$mets_data
=
<<'END';
<?xml version="1.0" encoding="UTF-8"?>
<mets xmlns:xlink="http://www.w3.org/TR/xlink">
<fileSec>
<fileGrp ID="IMGGRP" USE="Images">
<file ID="IMG00001" CREATED="2006-06-20T12:00:00" ADMID="IMGPARAM00001" MIMETYPE="image/tiff" SEQ="1" SIZE="5184000" GROUPID="1">
<FLocat LOCTYPE="URL" xlink:href="file://./003855/003855r.tif" />
</file>
<file ID="IMG00002" CREATED="2006-06-20T12:00:00" ADMID="IMGPARAM00002" MIMETYPE="image/tiff" SEQ="2" SIZE="5200228" GROUPID="2">
<FLocat LOCTYPE="URL" xlink:href="file://./003855/003855v.tif" />
</file>
</fileGrp>
<fileGrp ID="PDFGRP" USE="PDF">
<file ID="PDF00001" CREATED="2006-06-20T12:00:00" ADMID="IMGPARAM00001" MIMETYPE="text/pdf" SEQ="1" SIZE="251967" GROUPID="1">
<FLocat LOCTYPE="URL" xlink:href="file://./003855/003855r.pdf" />
</file>
<file ID="PDF00002" CREATED="2006-06-20T12:00:00" ADMID="IMGPARAM00002" MIMETYPE="text/pdf" SEQ="2" SIZE="172847" GROUPID="2">
<FLocat LOCTYPE="URL" xlink:href="file://./003855/003855v.pdf" />
</file>
</fileGrp>
</fileSec>
</mets>
END
# Object.
my
$obj
= METS::Files->new(
'mets_data'
=>
$mets_data
,
);
# Get files.
my
$files_hr
;
foreach
my
$use
(
$obj
->get_use_types) {
$files_hr
->{
$use
} = [
$obj
->get_use_files(
$use
)];
}
# Dump to output.
p
$files_hr
;
# Output:
# \ {
# Images [
# [0] "file://./003855/003855r.tif",
# [1] "file://./003855/003855v.tif"
# ],
# PDF [
# [0] "file://./003855/003855r.pdf",
# [1] "file://./003855/003855v.pdf"
# ]
# }
DEPENDENCIES
Class::Utils, Error::Pure, METS::Parse::Simple, Readonly.
REPOSITORY
https://github.com/michal-josef-spacek/METS-Files
AUTHOR
Michal Josef Špaček mailto:skim@cpan.org
LICENSE AND COPYRIGHT
© 2015-2024 Michal Josef Špaček
BSD 2-Clause License
VERSION
0.03