Changeset 24403

Show
Ignore:
Timestamp:
12.08.2011 18:10:11 (8 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 modified

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)) {