Changeset 7546


Ignore:
Timestamp:
2004-06-03T12:23:06+12:00 (20 years ago)
Author:
mdewsnip
Message:

Classifier -metadata elements from the extracted metadata set are now namespaced and un-namespaced correctly when there are multiple elements specified.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gli/src/org/greenstone/gatherer/cdm/CollectionConfiguration.java

    r7457 r7546  
    516516    /** ************************** Private Methods ***************************/
    517517
    518     private String classifyToString(Element command_element, boolean show_extracted_namespace) {
     518    private String classifyToString(Element command_element, boolean show_extracted_namespace)
     519    {
    519520    StringBuffer text = new StringBuffer(CLASSIFY_STR);
    520521    text.append(TAB_CHARACTER);
     
    529530        text.append(option_element.getAttribute(NAME_ATTRIBUTE));
    530531        String value_str = MSMUtils.getValue(option_element);
    531         if(value_str.length() > 0) {
    532             // If the value happens to be the identifier of an extracted metadata element, then remove the namespace.
    533             if(!show_extracted_namespace && value_str.startsWith(EXTRACTED_PREFIX)) {
    534             value_str = value_str.substring(EXTRACTED_PREFIX.length());
    535             }
    536             text.append(SPACE_CHARACTER);
    537             if(value_str.indexOf(SPACE_CHARACTER) == -1) {
    538             text.append(value_str);
    539             }
    540             else {
    541             text.append(SPEECH_CHARACTER);
    542             text.append(value_str);
    543             text.append(SPEECH_CHARACTER);
    544             }
     532
     533        // Remove the extracted metadata namespaces if required
     534        if (!show_extracted_namespace && value_str.length() > 0) {
     535            StringTokenizer string_tokenizer = new StringTokenizer(value_str, ",");
     536            value_str = "";
     537            while (string_tokenizer.hasMoreElements()) {
     538            String token = (String) string_tokenizer.nextElement();
     539            if (token.startsWith(EXTRACTED_PREFIX)) {
     540                token = token.substring(EXTRACTED_PREFIX.length());
     541            }
     542
     543            if (!value_str.equals("")) {
     544                value_str = value_str + ",";
     545            }
     546            value_str = value_str + token;
     547            }
     548        }
     549
     550        text.append(SPACE_CHARACTER);
     551        if (value_str.indexOf(SPACE_CHARACTER) == -1) {
     552            text.append(value_str);
     553        }
     554        else {
     555            text.append(SPEECH_CHARACTER);
     556            text.append(value_str);
     557            text.append(SPEECH_CHARACTER);
    545558        }
    546559        value_str = null;
     
    844857        InputStream istream = new FileInputStream(collect_config_file);
    845858        Reader in_reader = new InputStreamReader(istream, ENCODING);
    846         //FileReader in_reader = new FileReader(collect_config_file);
    847859        BufferedReader in = new BufferedReader(in_reader);
    848860        String command_str = null;
     
    11121124            String value = (String) arguments.get(name); // Can be null
    11131125            // The metadata argument gets added as the content attribute
    1114             if(name.equals(METADATA_ARGUMENT) && value != null) {
    1115             // The metadata argument must be the fully qualified name of a metadata element, so if it doesn't yet have a namespace, append the extracted metadata namespace.
    1116             if(value.indexOf(MSMUtils.NS_SEP) == -1) {
    1117                 value = Utility.EXTRACTED_METADATA_NAMESPACE + MSMUtils.NS_SEP + value;
    1118             }
    1119             //command_element.setAttribute(CONTENT_ATTRIBUTE, value);
     1126            if (name.equals(METADATA_ARGUMENT) && value != null) {
     1127            // Add the extracted namespace onto un-namespaced metadata names
     1128            StringTokenizer string_tokenizer = new StringTokenizer(value, ",");
     1129            value = "";
     1130            while (string_tokenizer.hasMoreElements()) {
     1131                String token = (String) string_tokenizer.nextElement();
     1132                if (token.indexOf(MSMUtils.NS_SEP) == -1) {
     1133                token = EXTRACTED_PREFIX + token;
     1134                }
     1135
     1136                if (!value.equals("")) {
     1137                value = value + ",";
     1138                }
     1139                value = value + token;
     1140            }
    11201141            }
    11211142            // Everything else is an Option Element
Note: See TracChangeset for help on using the changeset viewer.