Changeset 8037


Ignore:
Timestamp:
2004-08-24T15:17:16+12:00 (20 years ago)
Author:
mdewsnip
Message:

More additions to the new metadata code; now the NewCollectionMetadataPrompt is complete.

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

Legend:

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

    r8023 r8037  
    107107
    108108
    109     /** This is used to display the element in the value table */
     109    /** This is used to display the element in the metadata value table */
    110110    public String toString()
    111111    {
  • trunk/gli/src/org/greenstone/gatherer/metadata/MetadataSet.java

    r8023 r8037  
    1111public class MetadataSet
    1212{
     13    private File metadata_set_file = null;
    1314    private ArrayList metadata_set_elements = new ArrayList();
    1415    private String metadata_set_namespace = null;
     
    1718    public MetadataSet(File metadata_set_file)
    1819    {
     20    this.metadata_set_file = metadata_set_file;
     21
    1922    // Parse the specified metadata set file
    2023    Document document = XMLTools.parseXMLFile(metadata_set_file);
     
    5053
    5154
     55    public String getAttribute(String attribute_name, String language_code)
     56    {
     57    // Parse the specified metadata set file
     58    Document document = XMLTools.parseXMLFile(metadata_set_file);
     59    if (document == null) {
     60        System.err.println("Error: Could not parse metadata set file " + metadata_set_file.getAbsolutePath());
     61        return null;
     62    }
     63
     64    Element document_element = document.getDocumentElement();
     65    Element parent_element = document_element;
     66    boolean language_matches = false;
     67
     68    NodeList setlanguage_elements_nodelist = document_element.getElementsByTagName("SetLanguage");
     69    for (int i = 0; i < setlanguage_elements_nodelist.getLength(); i++) {
     70        Element current_setlanguage_element = (Element) setlanguage_elements_nodelist.item(i);
     71        String current_setlanguage_element_code = current_setlanguage_element.getAttribute("code");
     72        if (current_setlanguage_element_code.equals(language_code)) {
     73        // Found language; use it for the next step
     74        parent_element = current_setlanguage_element;
     75        language_matches = true;
     76        break;
     77        }
     78    }
     79
     80    NodeList attribute_elements_nodelist = parent_element.getElementsByTagName(attribute_name);
     81    for (int i = 0; i < attribute_elements_nodelist.getLength(); i++) {
     82        Element current_attribute_element = (Element) attribute_elements_nodelist.item(i);
     83
     84        // Check if the language matches
     85        String current_attribute_element_language = current_attribute_element.getAttribute("language");
     86        if (language_matches || current_attribute_element_language.equals(language_code)) {
     87        // Found attribute; returns its value
     88        return XMLTools.getElementTextValue(current_attribute_element);
     89        }
     90    }
     91
     92    return null;
     93    }
     94
     95
    5296    public MetadataElement getMetadataElement(String metadata_element_name)
    5397    {
  • trunk/gli/src/org/greenstone/gatherer/metadata/MetadataTools.java

    r8023 r8037  
    3333
    3434
     35    static public String getMetadataSetAttribute(MetadataSet metadata_set, String attribute_name, String language_code, String fallback_language_code)
     36    {
     37    String metadata_set_attribute = metadata_set.getAttribute(attribute_name, language_code);
     38
     39    // If the attribute isn't defined in the desired language, resort to the fallback
     40    if (metadata_set_attribute == null && !language_code.equals(fallback_language_code)) {
     41        metadata_set_attribute = metadata_set.getAttribute(attribute_name, fallback_language_code);
     42    }
     43
     44    return metadata_set_attribute;
     45    }
     46
     47
    3548    static public String getMetadataSetNamespace(String metadata_element_name_full)
    3649    {
Note: See TracChangeset for help on using the changeset viewer.