Changeset 12350


Ignore:
Timestamp:
2006-07-31T13:49:47+12:00 (18 years ago)
Author:
kjdon
Message:

change parseClassify to use a StringBuffer in an inner loop, and added support for languagemetadata in collect.cfg (used with language partitions

File:
1 edited

Legend:

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

    r12253 r12350  
    216216        return languageDefaultToString(command_element);
    217217    }
     218    else if (command_element_name.equals(LANGUAGE_METADATA_ELEMENT)) {
     219        return languageMetadataToString(command_element, show_extracted_namespace);
     220    }
    218221    else if(command_element_name.equals(LEVELS_ELEMENT)) {
    219222        return levelsToString(command_element);
     
    300303
    301304    /** Gives the preferred ordering of commands */
    302     static final private String[] COMMAND_ORDER = {StaticStrings.COLLECTIONMETADATA_CREATOR_ELEMENT, StaticStrings.COLLECTIONMETADATA_MAINTAINER_ELEMENT, StaticStrings.COLLECTIONMETADATA_PUBLIC_ELEMENT,  /*StaticStrings.SEARCHTYPE_ELEMENT,*/ StaticStrings.BUILDTYPE_ELEMENT, StaticStrings.PLUGIN_ELEMENT, StaticStrings.INDEXES_ELEMENT, StaticStrings.INDEX_DEFAULT_ELEMENT, StaticStrings.LEVELS_ELEMENT, StaticStrings.LEVEL_DEFAULT_ELEMENT, StaticStrings.LANGUAGES_ELEMENT, StaticStrings.LANGUAGE_DEFAULT_ELEMENT, StaticStrings.SUBCOLLECTION_ELEMENT, StaticStrings.SUBCOLLECTION_INDEXES_ELEMENT, StaticStrings.SUBCOLLECTION_DEFAULT_INDEX_ELEMENT, StaticStrings.SUPERCOLLECTION_ELEMENT, StaticStrings.CLASSIFY_ELEMENT, StaticStrings.FORMAT_ELEMENT, StaticStrings.COLLECTIONMETADATA_ELEMENT};
     305    static final private String[] COMMAND_ORDER = {StaticStrings.COLLECTIONMETADATA_CREATOR_ELEMENT, StaticStrings.COLLECTIONMETADATA_MAINTAINER_ELEMENT, StaticStrings.COLLECTIONMETADATA_PUBLIC_ELEMENT, StaticStrings.BUILDTYPE_ELEMENT, StaticStrings.PLUGIN_ELEMENT, StaticStrings.INDEXES_ELEMENT, StaticStrings.INDEX_DEFAULT_ELEMENT, StaticStrings.LEVELS_ELEMENT, StaticStrings.LEVEL_DEFAULT_ELEMENT, StaticStrings.LANGUAGES_ELEMENT, StaticStrings.LANGUAGE_DEFAULT_ELEMENT, StaticStrings.LANGUAGE_METADATA_ELEMENT, StaticStrings.SUBCOLLECTION_ELEMENT, StaticStrings.SUBCOLLECTION_INDEXES_ELEMENT, StaticStrings.SUBCOLLECTION_DEFAULT_INDEX_ELEMENT, StaticStrings.SUPERCOLLECTION_ELEMENT, StaticStrings.CLASSIFY_ELEMENT, StaticStrings.FORMAT_ELEMENT, StaticStrings.COLLECTIONMETADATA_ELEMENT};
    303306
    304307    /** ************************** Public Data Members ***************************/
     
    359362    }
    360363
     364    public Element getLanguageMetadata() {
     365    return getOrCreateElementByTagName(LANGUAGE_METADATA_ELEMENT, null, null);
     366    }
     367   
    361368    public Element getLevels() {
    362369    return getOrCreateElementByTagName(LEVELS_ELEMENT, null, null);
     
    393400
    394401    }
    395 //     /** Retrieve or create the searchtype element. */
    396 //     public Element getSearchType() {
    397 //  ///ystem.err.println("Get or create element by tag name: " + name);
    398 //  Element document_element = document.getDocumentElement();
    399 //  NodeList elements = document_element.getElementsByTagName(SEARCHTYPE_ELEMENT);
    400 //  int elements_length = elements.getLength();
    401 //  if(elements_length > 0) {
    402 //      document_element = null;
    403 //      return (Element) elements.item(0);
    404 //  }
    405 //  // Create the element
    406 //  Element element = document.createElement(SEARCHTYPE_ELEMENT);
    407 //  Node target_node = findInsertionPoint(element);
    408 //  if(target_node != null) {
    409 //      document_element.insertBefore(element, target_node);
    410 //  }
    411 //  else {
    412 //      document_element.appendChild(element);
    413 //  }
    414 //  document_element = null;
    415 //  // Append a default search type node - form
    416 //  Element a_searchtype_element = CollectionDesignManager.collect_config.document.createElement(CollectionConfiguration.CONTENT_ELEMENT);
    417 //  a_searchtype_element.setAttribute(CollectionConfiguration.NAME_ATTRIBUTE, SearchTypeManager.SEARCH_TYPES[0]);
    418 //  element.appendChild(a_searchtype_element);
    419 //  return element;
    420 //     }
    421402
    422403    /** Retrieve or create the subindexes Element. */
     
    511492        text.append(option_element.getAttribute(NAME_ATTRIBUTE));
    512493        String value_str = XMLTools.getValue(option_element);
    513 
     494        StringBuffer value_buffer = new StringBuffer();
    514495        // Remove the extracted metadata namespaces if required
    515496        if (value_str.length() > 0) {
    516497            StringTokenizer string_tokenizer = new StringTokenizer(value_str, ",");
    517             value_str = "";
    518498            while (string_tokenizer.hasMoreElements()) {
    519499            String raw_token = (String) string_tokenizer.nextElement();
     
    527507                token = token.substring(StaticStrings.EXTRACTED_NAMESPACE.length());
    528508            }
    529 
    530             value_str = value_str + token;
     509            value_buffer.append(token);
    531510            if (string_tokenizer.hasMoreElements()) {
    532                 value_str = value_str + ",";
     511                value_buffer.append(",");
    533512            }
    534513            }
     
    537516        text.append(SPACE_CHARACTER);
    538517        if (value_str.indexOf(SPACE_CHARACTER) == -1) {
    539             text.append(value_str);
     518            text.append(value_buffer.toString());
    540519        }
    541520        else {
     
    729708    }
    730709
     710    static private String languageMetadataToString(Element command_element, boolean show_extracted_namespace) {
     711    StringBuffer text = new StringBuffer(LANGUAGE_METADATA_STR);
     712    text.append(TAB_CHARACTER);
     713    String name_str = command_element.getAttribute(NAME_ATTRIBUTE);
     714    if(!show_extracted_namespace && name_str.startsWith(StaticStrings.EXTRACTED_NAMESPACE)) {
     715        name_str = name_str.substring(StaticStrings.EXTRACTED_NAMESPACE.length());
     716    }
     717    text.append(name_str);
     718    return text.toString();
     719    }
     720   
    731721    static private String levelsToString(Element command_element) {
    732722    StringBuffer text = new StringBuffer("");
     
    894884            if(command_element == null && command_type.equals(LANGUAGE_DEFAULT_STR)) {
    895885            command_element = parseLanguageDefault(command_str);
     886            }
     887            if (command_element == null && command_type.equals(LANGUAGE_METADATA_STR)) {
     888            command_element = parseLanguageMetadata(command_str);
    896889            }
    897890            if(command_element == null && (command_type.equals(LEVELS_STR) || command_type.equals(COMMENTED_LEVELS_STR))) {
     
    12061199    }
    12071200
     1201    private Element parseLanguageMetadata(String command_str) {
     1202    Element command_element = null;
     1203    try {
     1204        StringTokenizer tokenizer = new StringTokenizer(command_str);
     1205        if(tokenizer.countTokens() >= 2) {
     1206        command_element = document.createElement(LANGUAGE_METADATA_ELEMENT);
     1207        tokenizer.nextToken();
     1208        String language_metadata_str = tokenizer.nextToken();
     1209        if (language_metadata_str.indexOf(StaticStrings.NS_SEP) == -1) {
     1210            language_metadata_str = StaticStrings.EXTRACTED_NAMESPACE + language_metadata_str;
     1211        }
     1212        command_element.setAttribute(NAME_ATTRIBUTE, language_metadata_str);
     1213        command_element.setAttribute(ASSIGNED_ATTRIBUTE, StaticStrings.TRUE_STR);
     1214        language_metadata_str = null;
     1215        }
     1216        tokenizer = null;
     1217       
     1218    }
     1219    catch (Exception exception) {
     1220    }
     1221    return command_element;
     1222    }
     1223   
    12081224    private Element parseLevels(String command_str) {
    12091225    Element command_element = null;
Note: See TracChangeset for help on using the changeset viewer.