Ignore:
Timestamp:
2004-08-23T16:02:45+12:00 (20 years ago)
Author:
mdewsnip
Message:

More new metadata code: metadata elements now have definitions and comments.

File:
1 edited

Legend:

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

    r7978 r8023  
    11package org.greenstone.gatherer.metadata;
     2
     3
     4import org.greenstone.gatherer.util.XMLTools;
     5import org.w3c.dom.*;
    26
    37
     
    610{
    711    private String metadata_element_name_full = null;
    8     private String metadata_element_description = null;
     12    private Element metadata_element_element = null;
    913    private MetadataValueTreeModel metadata_value_tree_model = null;
    1014
    1115
    12     public MetadataElement(String metadata_element_name_full, String metadata_element_description)
     16    public MetadataElement(String metadata_element_name_full, Element metadata_element_element)
    1317    {
    1418    this.metadata_element_name_full = metadata_element_name_full;
    15     this.metadata_element_description = metadata_element_description;
     19    this.metadata_element_element = metadata_element_element;
    1620    this.metadata_value_tree_model = new MetadataValueTreeModel(this);
    1721    }
     
    2428
    2529
    26     public String getDescription()
     30    public String getAttribute(String attribute_name, String language_code)
    2731    {
    28     return metadata_element_description;
     32    // Some extracted metadata elements may not be in ex.mds, and so have no attributes
     33    // if (metadata_element_element == null) {
     34    //     return null;
     35    // }
     36
     37    Element parent_element = metadata_element_element;
     38    boolean language_matches = false;
     39
     40    NodeList language_elements_nodelist = metadata_element_element.getElementsByTagName("Language");
     41    for (int i = 0; i < language_elements_nodelist.getLength(); i++) {
     42        Element current_language_element = (Element) language_elements_nodelist.item(i);
     43        String current_language_element_code = current_language_element.getAttribute("code");
     44        if (current_language_element_code.equals(language_code)) {
     45        // Found language; use it for the next step
     46        parent_element = current_language_element;
     47        language_matches = true;
     48        break;
     49        }
     50    }
     51
     52    NodeList attribute_elements_nodelist = parent_element.getElementsByTagName("Attribute");
     53    for (int i = 0; i < attribute_elements_nodelist.getLength(); i++) {
     54        Element current_attribute_element = (Element) attribute_elements_nodelist.item(i);
     55        String current_attribute_element_name = current_attribute_element.getAttribute("name");
     56        if (!current_attribute_element_name.equals(attribute_name)) {
     57        // Move on to the next Attribute element if the name doesn't match
     58        continue;
     59        }
     60
     61        // Check if the language matches
     62        String current_attribute_element_language = current_attribute_element.getAttribute("language");
     63        if (language_matches || current_attribute_element_language.equals(language_code)) {
     64        // Found attribute; returns its value
     65        return XMLTools.getElementTextValue(current_attribute_element);
     66        }
     67    }
     68
     69    return null;
    2970    }
    3071
Note: See TracChangeset for help on using the changeset viewer.