View | Details | Raw Unified | Return to bug 14639
Collapse All | Expand All

(-)a/Koha/MetadataRecord.pm (-6 / +61 lines)
Lines 23-29 Koha::MetadataRecord - base class for metadata records Link Here
23
23
24
=head1 SYNOPSIS
24
=head1 SYNOPSIS
25
25
26
    my $record = new Koha::MetadataRecord({ 'record' => $marcrecord });
26
    my $record = new Koha::MetadataRecord({ 'record' => $record });
27
27
28
=head1 DESCRIPTION
28
=head1 DESCRIPTION
29
29
Lines 32-46 and authority) records in Koha. Link Here
32
32
33
=cut
33
=cut
34
34
35
use strict;
35
use Modern::Perl;
36
use warnings;
36
37
use C4::Context;
37
use Carp;
38
use Koha::Util::MARC;
38
use Koha::Util::MARC;
39
39
40
use base qw(Class::Accessor);
40
use base qw(Class::Accessor);
41
41
42
__PACKAGE__->mk_accessors(qw( record schema ));
42
__PACKAGE__->mk_accessors(qw( record schema format id ));
43
44
45
=head2 new
46
47
    my $metadata_record = new Koha::MetadataRecord({
48
                                record => $record,
49
                                schema => $schema,
50
                                format => $format,
51
                                id     => $id
52
                          });
53
54
Returns a Koha::MetadataRecord object encapsulating record metadata.
55
56
C<$record> is expected to be a deserialized object (for example
57
a MARC::Record or XML::LibXML::Document object or JSON).
58
59
C<$schema> is used to describe the metadata schema (for example
60
marc21, unimarc, dc, mods, etc).
61
62
C<$format> is used to specify the serialization format. It is important
63
for Koha::RecordProcessor because it will pick the right Koha::Filter
64
implementation based on this parameter. Valid values are:
65
66
   marc (for MARC::Record objects)
67
   xml  (for XML::LibXML::Document objects)
68
   json (for JSON objects)
69
70
(optional) C<$id> is used so the record carries its own id and Koha doesn't
71
need to look for it inside the record.
43
72
73
=cut
74
75
sub new {
76
77
    my $class  = shift;
78
    my $params = shift;
79
80
    if (!defined $params->{ record }) {
81
        carp 'No record passed';
82
        return;
83
    }
84
85
    my $record = $params->{ record };
86
    my $schema = $params->{ schema } // 'marc21';
87
    my $format = $params->{ format } // 'marc';
88
    my $id     = $params->{ id };
89
90
    my $self = $class->SUPER::new({
91
        record => $record,
92
        schema => $schema,
93
        format => $format,
94
        id     => $id
95
    });
96
97
    bless $self, $class;
98
    return $self;
99
}
44
100
45
=head2 createMergeHash
101
=head2 createMergeHash
46
102
47
- 

Return to bug 14639