Lines 43-48
sub _type {
Link Here
|
43 |
return 'SftpServer'; |
43 |
return 'SftpServer'; |
44 |
} |
44 |
} |
45 |
|
45 |
|
|
|
46 |
=head3 _polymorphic_field |
47 |
|
48 |
Return the field in the table that defines the polymorphic class to be built |
49 |
|
50 |
=cut |
51 |
|
52 |
sub _polymorphic_field { |
53 |
return 'transport'; # This field defines which subclass to use |
54 |
} |
55 |
|
56 |
=head3 _polymorphic_map |
57 |
|
58 |
Return the mapping for field value to class name for the polymorphic class |
59 |
|
60 |
=cut |
61 |
|
62 |
sub _polymorphic_map { |
63 |
return { |
64 |
sftp => 'Koha::File::Transport::SFTP', |
65 |
ftp => 'Koha::File::Transport::FTP', |
66 |
}; |
67 |
} |
68 |
|
46 |
=head3 object_class |
69 |
=head3 object_class |
47 |
|
70 |
|
48 |
Return object class dynamically based on transport |
71 |
Return object class dynamically based on transport |
Lines 54-65
sub object_class {
Link Here
|
54 |
|
77 |
|
55 |
return 'Koha::File::Transport' unless $object; |
78 |
return 'Koha::File::Transport' unless $object; |
56 |
|
79 |
|
57 |
my %class_map = ( |
80 |
my $field = $self->_polymorphic_field; |
58 |
sftp => 'Koha::File::Transport::SFTP', |
81 |
my $map = $self->_polymorphic_map; |
59 |
ftp => 'Koha::File::Transport::FTP', |
|
|
60 |
); |
61 |
|
82 |
|
62 |
return $class_map{ lc( $object->transport ) } || 'Koha::File::Transport'; |
83 |
return $map->{ lc( $object->$field ) } || 'Koha::File::Transport'; |
63 |
} |
84 |
} |
64 |
|
85 |
|
65 |
1; |
86 |
1; |
66 |
- |
|
|