Changeset 8135


Ignore:
Timestamp:
2004-09-22T15:53:30+12:00 (20 years ago)
Author:
mdewsnip
Message:

Improvements to the new metadata code, this time for handling DLS-type collections where all the metadata is in one metadata.xml file.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gli/src/org/greenstone/gatherer/metadata/MetadataXMLFile.java

    r8134 r8135  
    214214        Element current_fileset_element = (Element) fileset_elements_nodelist.item(i);
    215215        boolean current_fileset_matches = false;
    216         boolean is_folder_level_metadata = false;
     216        File folder_metadata_inherited_from = null;
    217217
    218218        // Check the FileName elements of the FileSet to see if we have a match
     
    222222        String current_filename_element_value = XMLTools.getElementTextValue(current_filename_element);
    223223
    224         // This fileset specifies metadata for this file
     224        // This fileset specifies metadata for the file
    225225        if (file_relative_path.matches(current_filename_element_value)) {
    226226            current_fileset_matches = true;
    227             is_folder_level_metadata = (current_filename_element_value.equals(DIRECTORY_FILENAME));
     227            if (!file_relative_path.equals("") && current_filename_element_value.equals(DIRECTORY_FILENAME)) {
     228            folder_metadata_inherited_from = metadata_xml_file_directory;
     229            }
     230            break;
     231        }
     232
     233        // This fileset specifies metadata for the folder the file is in
     234        if (file_relative_path.startsWith(current_filename_element_value + File.separator)) {
     235            current_fileset_matches = true;
     236            folder_metadata_inherited_from = new File(metadata_xml_file_directory, current_filename_element_value);
    228237            break;
    229238        }
     
    271280
    272281        MetadataValue metadata_value = new MetadataValue(metadata_element, metadata_value_tree_node);
    273         if (is_folder_level_metadata && !file_relative_path.equals("")) {
    274             metadata_value.inheritsMetadataFromFolder(metadata_xml_file_directory);
    275         }
     282        metadata_value.inheritsMetadataFromFolder(folder_metadata_inherited_from);
    276283
    277284        // Is this accumulating metadata?
Note: See TracChangeset for help on using the changeset viewer.