Changeset 24403


Ignore:
Timestamp:
2011-08-12T18:10:11+12:00 (11 years ago)
Author:
ak19
Message:

Dr Bainbridge has fixed the conflict between OAIPlugin and EmbeddedMetadataPlugin which resulted in the oai tutorial (with the JCDL pictures) going wrong: meta was not attached to the images. Dr Bainbridge solved the problem by introducing a new method in BasePlugin: can_process_this_file_for_metadata, which by default returns undef so that things should work by default mostly. This method has been overridden in OAIPlugin and EmbeddedMetadataPlugin now to do the right thing there.

Location:
main/trunk/greenstone2/perllib/plugins
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone2/perllib/plugins/BasePlugin.pm

    r24290 r24403  
    528528}
    529529
     530# Even if a plugin can extract metadata in its metadata_read pass,
     531# make the default return 'undef' so processing of the file continues
     532# down the pipeline, so other plugins can also have the opportunity to
     533# locate metadata and set it up in the extrametakeys variables that
     534# are passed around.
     535
     536sub can_process_this_file_for_metadata {
     537    my $self = shift(@_);
     538
     539    return undef;
     540}
     541
     542
    530543# just converts path as is to utf8.
    531544sub filepath_to_utf8 {
     
    11311144    # can we process this file??
    11321145    my ($filename_full_path, $filename_no_path) = &util::get_full_filenames($base_dir, $file);
    1133     return undef unless $self->can_process_this_file($filename_full_path);
     1146    return undef unless $self->can_process_this_file_for_metadata($filename_full_path);
    11341147
    11351148    return 1; # we recognise the file, but don't actually do anything with it
  • main/trunk/greenstone2/perllib/plugins/EmbeddedMetadataPlugin.pm

    r24349 r24403  
    121121#}
    122122
     123# plugins that rely on more than process_exp (eg XML plugins) can override this method
     124sub can_process_this_file {
     125    my $self = shift(@_);
     126
     127    # we process metadata, not the file
     128    return 0;   
     129}
     130
     131# Even if a plugin can extract metadata in its metadata_read pass,
     132# make the default return 'undef' so processing of the file continues
     133# down the pipeline, so other plugins can also have the opportunity to
     134# locate metadata and set it up in the extrametakeys variables that
     135# are passed around.
     136
     137sub can_process_this_file_for_metadata {
     138    my $self = shift(@_);
     139
     140    # this plugin will look for metadata in any file through its
     141    # metadata_read() returning undef here means anything else further
     142    # down the pipeline can do the same
     143
     144    return undef;
     145}
     146
    123147
    124148sub extractEmbeddedMetadata()
     
    285309}
    286310
     311sub read
     312{
     313    return undef;
     314}
    287315
    288316sub process()
  • main/trunk/greenstone2/perllib/plugins/OAIPlugin.pm

    r23352 r24403  
    185185}
    186186
     187sub can_process_this_file_for_metadata {
     188    my $self = shift(@_);
     189
     190    return $self->can_process_this_file(@_);
     191}
     192
    187193
    188194sub metadata_read {
     
    195201    # can we process this file??
    196202    my ($filename_full_path, $filename_no_path) = &util::get_full_filenames($base_dir, $file);
    197     return undef unless $self->can_process_this_file($filename_full_path);
     203    return undef unless $self->can_process_this_file_for_metadata($filename_full_path);
    198204   
    199205    if (!$self->parse_file($filename_full_path, $file, $gli)) {
Note: See TracChangeset for help on using the changeset viewer.