Changeset 8996


Ignore:
Timestamp:
2005-02-10T14:24:54+13:00 (19 years ago)
Author:
mdewsnip
Message:

Added code for dealing with hierarchical metadata sets. Merely reduces the hierarchical elements into one dimensional form (using '' to indicate subelements), leaving all the rest of the code as is.

Location:
trunk/gli/src/org/greenstone/gatherer/metadata
Files:
3 edited

Legend:

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

    r8231 r8996  
    102102    {
    103103    String metadata_element_display_name = MetadataTools.getMetadataElementAttribute(this, "identifier", Configuration.getLanguage(), "en");
     104
     105    // Deal with hierarchical metadata elements
     106    if (metadata_element_name_full.indexOf(MetadataTools.SUBELEMENT_SEPARATOR) != -1) {
     107        String parent_metadata_element_name_full = metadata_element_name_full.substring(0, metadata_element_name_full.lastIndexOf(MetadataTools.SUBELEMENT_SEPARATOR));
     108        MetadataElement parent_metadata_element = MetadataTools.getMetadataElementWithName(parent_metadata_element_name_full);
     109        return parent_metadata_element.getDisplayName() + MetadataTools.SUBELEMENT_SEPARATOR + metadata_element_display_name;
     110    }
     111
    104112    if (metadata_element_display_name != null) {
    105113        return getNamespace() + "." + metadata_element_display_name;
  • trunk/gli/src/org/greenstone/gatherer/metadata/MetadataSet.java

    r8267 r8996  
    6363        Element metadata_element_element = (Element) element_elements_nodelist.item(i);
    6464        String metadata_element_name = metadata_element_element.getAttribute("name");
     65
     66        // Deal with hierarchical metadata elements
     67        Element parent_metadata_element_element = (Element) metadata_element_element.getParentNode();
     68        while (parent_metadata_element_element.getTagName().equals("Element")) {
     69        String parent_metadata_element_name = parent_metadata_element_element.getAttribute("name");
     70        metadata_element_name = parent_metadata_element_name + MetadataTools.SUBELEMENT_SEPARATOR + metadata_element_name;
     71        parent_metadata_element_element = (Element) parent_metadata_element_element.getParentNode();
     72        }
     73
    6574        String metadata_element_name_full = metadata_set_namespace + MetadataTools.NAMESPACE_SEPARATOR + metadata_element_name;
    6675        metadata_set_elements.add(new MetadataElement(metadata_element_name_full, metadata_element_element));
  • trunk/gli/src/org/greenstone/gatherer/metadata/MetadataTools.java

    r8164 r8996  
    3232{
    3333    static final public String NAMESPACE_SEPARATOR = ".";
     34    static final public String SUBELEMENT_SEPARATOR = "^";
    3435
    3536
Note: See TracChangeset for help on using the changeset viewer.