NAME

Data::MARC::Validator::Report - Data object for MARC validator report.

SYNOPSIS

use Data::MARC::Validator::Report;

my $obj = Data::MARC::Validator::Report->new(%params);
my $datetime = $obj->datetime;
my $plugins_ar = $obj->plugins;

METHODS

new

my $obj = Data::MARC::Validator::Report->new(%params);

Constructor.

Returns instance of object.

datetime

my $datetime = $obj->datetime;

Get datetime of report.

Returns DateTime object.

plugins

my $plugins_ar = $obj->plugins;

Get plugin reports.

Return reference to array with Data::MARC::Validator::Report::Plugin objects.

ERRORS

new():
        From Mo::utils:
                Parameter 'datetime' is required.
                Parameter 'datetime' must be a 'DateTime' object.
                        Value: %s
                        Reference: %s

        From Mo::utils::Array:
                Parameter 'plugins' must be a array.
                        Value: %s
                        Reference: %s
                Parameter 'plugins' with array must contain 'Data::MARC::Validator::Report::Plugin' objects.
                        Value: %s
                        Reference: %s

EXAMPLE

use strict;
use warnings;

use Data::Printer;
use Data::MARC::Validator::Report;
use Data::MARC::Validator::Report::Error;
use Data::MARC::Validator::Report::Errors;
use Data::MARC::Validator::Report::Plugin;
use DateTime;

# Create data object for validator report.
my $report = Data::MARC::Validator::Report->new(
        'datetime' => DateTime->now,
        'plugins' => [
                Data::MARC::Validator::Report::Plugin->new(
                       'errors' => [
                               Data::MARC::Validator::Report::Errors->new(
                                       'errors' => [
                                               Data::MARC::Validator::Report::Error->new(
                                                       'error' => 'Error #1',
                                                       'params' => {
                                                               'key' => 'value',
                                                       },
                                               ),
                                               Data::MARC::Validator::Report::Error->new(
                                                       'error' => 'Error #2',
                                                       'params' => {
                                                               'key' => 'value',
                                                       },
                                               ),
                                       ],
                                       'filters' => ['filter1', 'filter2'],
                                       'record_id' => 'id1',
                               ),
                       ],
                       'module_name' => 'MARC::Validator::Plugin::Foo',
                       'name' => 'foo',
                       'version' => '0.01',
                ),
        ],
);

# Dump out.
p $report;

# Output:
# Data::MARC::Validator::Report  {
#     parents: Mo::Object
#     public methods (4):
#         BUILD
#         Mo::utils:
#             check_isa, check_required
#         Mo::utils::Array:
#             check_array_object
#     private methods (0)
#     internals: {
#         datetime   2026-02-22T11:16:24 (DateTime),
#         plugins    [
#             [0] Data::MARC::Validator::Report::Plugin
#         ]
#     }
# }

DEPENDENCIES

Mo, Mo::utils, Mo::utils::Array.

REPOSITORY

https://github.com/michal-josef-spacek/Data-MARC-Validator-Report

AUTHOR

Michal Josef Špaček mailto:skim@cpan.org

http://skim.cz

LICENSE AND COPYRIGHT

© 2025-2025 Michal Josef Špaček

BSD 2-Clause License

ACKNOWLEDGEMENTS

Development of this software has been made possible by institutional support for the long-term strategic development of the National Library of the Czech Republic as a research organization provided by the Ministry of Culture of the Czech Republic (DKRVO 2024–2028), Area 11: Linked Open Data.

VERSION

0.02