Sponsoring The Perl Toolchain Summit 2025: Help make this important event another success Learn more

NAME

METS::Files - Class for METS files manipulation.

SYNOPSIS

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 Perl6::Slurp qw(slurp);
# Arguments.
if (@ARGV < 1) {
print 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;
# 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 [
# ],
# 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

http://skim.cz

LICENSE AND COPYRIGHT

© 2015-2024 Michal Josef Špaček

BSD 2-Clause License

VERSION

0.03