Changeset 9015


Ignore:
Timestamp:
2005-02-11T15:55:06+13:00 (19 years ago)
Author:
mdewsnip
Message:

Updated my recent changes to getDisplayName() to be more robust with weird hierarchical metadata.

File:
1 edited

Legend:

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

    r8996 r9015  
    103103    String metadata_element_display_name = MetadataTools.getMetadataElementAttribute(this, "identifier", Configuration.getLanguage(), "en");
    104104
    105     // Deal with hierarchical metadata elements
    106     if (metadata_element_name_full.indexOf(MetadataTools.SUBELEMENT_SEPARATOR) != -1) {
     105    // Root case (no subelements)
     106    if (metadata_element_name_full.indexOf(MetadataTools.SUBELEMENT_SEPARATOR) == -1) {
     107        if (metadata_element_display_name != null) {
     108        return getNamespace() + "." + metadata_element_display_name;
     109        }
     110
     111        return metadata_element_name_full;
     112    }
     113
     114    // Recursive case (hierarchical metadata elements)
     115    else {
    107116        String parent_metadata_element_name_full = metadata_element_name_full.substring(0, metadata_element_name_full.lastIndexOf(MetadataTools.SUBELEMENT_SEPARATOR));
    108117        MetadataElement parent_metadata_element = MetadataTools.getMetadataElementWithName(parent_metadata_element_name_full);
    109         return parent_metadata_element.getDisplayName() + MetadataTools.SUBELEMENT_SEPARATOR + metadata_element_display_name;
     118
     119        String parent_metadata_element_display_name = parent_metadata_element_name_full;
     120        if (parent_metadata_element != null) {
     121        parent_metadata_element_display_name = parent_metadata_element.getDisplayName();
     122        }
     123
     124        if (metadata_element_display_name != null) {
     125        return parent_metadata_element_display_name + MetadataTools.SUBELEMENT_SEPARATOR + metadata_element_display_name;
     126        }
     127
     128        return parent_metadata_element_display_name + MetadataTools.SUBELEMENT_SEPARATOR + metadata_element_name_full.substring(metadata_element_name_full.length() - parent_metadata_element_name_full.length());
    110129    }
    111 
    112     if (metadata_element_display_name != null) {
    113         return getNamespace() + "." + metadata_element_display_name;
    114     }
    115 
    116     return metadata_element_name_full;
    117130    }
    118131
Note: See TracChangeset for help on using the changeset viewer.