Changeset 13056


Ignore:
Timestamp:
2006-10-09T16:56:50+13:00 (18 years ago)
Author:
kjdon
Message:

levels and leveldefault parsing now done using more general indexoption and indexoptiondefault parsing. added a few more get methods

File:
1 edited

Legend:

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

    r12814 r13056  
    235235        return languageMetadataToString(command_element, show_extracted_namespace);
    236236    }
    237     else if(command_element_name.equals(StaticStrings.LEVELS_ELEMENT)) {
    238         return levelsToString(command_element);
    239     }
    240     else if(command_element_name.equals(StaticStrings.LEVEL_DEFAULT_ELEMENT)) {
    241         return levelDefaultToString(command_element);
     237    else if(command_element_name.equals(StaticStrings.INDEXOPTIONS_ELEMENT)) {
     238        return indexOptionsToString(command_element);
     239    }
     240    else if(command_element_name.equals(StaticStrings.INDEXOPTION_DEFAULT_ELEMENT)) {
     241        return indexOptionDefaultToString(command_element);
    242242    }
    243243    else if(command_element_name.equals(StaticStrings.COLLECTIONMETADATA_ELEMENT)) {
     
    259259        return pluginToString(command_element, show_extracted_namespace);
    260260    }
    261 //  else if(command_element_name.equals(StaticStrings.SEARCHTYPE_ELEMENT)) {
    262 //      return searchtypeToString(command_element);
    263 //  }
    264261    else if(command_element_name.equals(StaticStrings.SUBCOLLECTION_ELEMENT)) {
    265262        return subcollectionToString(command_element, show_extracted_namespace);
     
    317314
    318315    /** Gives the preferred ordering of commands */
    319     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};
     316    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.INDEXOPTIONS_ELEMENT, StaticStrings.INDEXOPTION_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};
    320317
    321318    /** ************************** Public Data Members ***************************/
     
    381378   
    382379    public Element getLevels() {
    383     return getOrCreateElementByTagName(StaticStrings.LEVELS_ELEMENT, null, null);
    384     }
    385 
     380    return getOrCreateElementByTagName(StaticStrings.INDEXOPTIONS_ELEMENT, StaticStrings.NAME_ATTRIBUTE, StaticStrings.LEVELS_STR);
     381     }
     382
     383    public Element getLevelDefault() {
     384    return getOrCreateElementByTagName(StaticStrings.INDEXOPTION_DEFAULT_ELEMENT, StaticStrings.NAME_ATTRIBUTE, StaticStrings.LEVEL_DEFAULT_STR);
     385     }
     386   
     387    public Element getStemOptions() {
     388    return getOrCreateElementByTagName(StaticStrings.INDEXOPTIONS_ELEMENT, StaticStrings.NAME_ATTRIBUTE, StaticStrings.STEMOPTIONS_STR);
     389     }
     390   
     391   
    386392    public Element getMaintainer() {
    387393    Element element = getOrCreateElementByTagName(StaticStrings.COLLECTIONMETADATA_MAINTAINER_ELEMENT, null, null);
     
    452458        // Anything else we write to file, but only if it has been assigned, except for index and level commands
    453459        // (which just get commented out if unassigned -- a side effect of MG & MGPP compatibility)
    454         else if (!command_element.getAttribute(StaticStrings.ASSIGNED_ATTRIBUTE).equals(StaticStrings.FALSE_STR) || command_element.getNodeName().equals(StaticStrings.INDEXES_ELEMENT) || command_element.getNodeName().equals(StaticStrings.INDEX_DEFAULT_ELEMENT) || command_element.getNodeName().equals(StaticStrings.LEVELS_ELEMENT) || command_element.getNodeName().equals(StaticStrings.LEVEL_DEFAULT_ELEMENT)) {
     460        else if (!command_element.getAttribute(StaticStrings.ASSIGNED_ATTRIBUTE).equals(StaticStrings.FALSE_STR) || command_element.getNodeName().equals(StaticStrings.INDEXES_ELEMENT) || command_element.getNodeName().equals(StaticStrings.INDEX_DEFAULT_ELEMENT) || command_element.getNodeName().equals(StaticStrings.INDEXOPTIONS_ELEMENT) || command_element.getNodeName().equals(StaticStrings.INDEXOPTION_DEFAULT_ELEMENT)) {
    455461        String command;
    456462        if (command_element.getNodeName().equals(StaticStrings.FORMAT_ELEMENT)) {
     
    770776    }
    771777   
    772     static private String levelsToString(Element command_element) {
     778    static private String indexOptionsToString(Element command_element) {
    773779    StringBuffer text = new StringBuffer("");
    774780    if(command_element.getAttribute(StaticStrings.ASSIGNED_ATTRIBUTE).equals(StaticStrings.FALSE_STR)) {
    775781        text.append("#");
    776782    }
    777     text.append(StaticStrings.LEVELS_STR);
     783    text.append(command_element.getAttribute(StaticStrings.NAME_ATTRIBUTE));
    778784    text.append(StaticStrings.TAB_CHARACTER);
    779785    text.append(StaticStrings.TAB_CHARACTER);
    780     NodeList content_elements = command_element.getElementsByTagName(StaticStrings.LEVEL_ELEMENT);
     786    NodeList content_elements = command_element.getElementsByTagName(StaticStrings.INDEXOPTION_ELEMENT);
    781787    int content_elements_length = content_elements.getLength();
    782     // Don't output anything if no levels are set.
     788    // Don't output anything if no options are set.
    783789    if(content_elements_length == 0) {
    784790        return null;
     
    792798    }
    793799
    794     static private String levelDefaultToString(Element command_element) {
     800    static private String indexOptionDefaultToString(Element command_element) {
    795801    StringBuffer text = new StringBuffer("");
    796802    if(command_element.getAttribute(StaticStrings.ASSIGNED_ATTRIBUTE).equals(StaticStrings.FALSE_STR)) {
    797803        text.append("#");
    798804    }
    799     text.append(StaticStrings.LEVEL_DEFAULT_STR);
     805    text.append(command_element.getAttribute(StaticStrings.NAME_ATTRIBUTE));
    800806    text.append(StaticStrings.TAB_CHARACTER);
    801     text.append(command_element.getAttribute(StaticStrings.NAME_ATTRIBUTE));
     807    text.append(command_element.getAttribute(StaticStrings.VALUE_ATTRIBUTE));
    802808    return text.toString();
    803809    }
    804810   
    805    
    806 
    807811    static private String metadataToString(Element command_element, boolean text_value) {
    808812    // lets first check the value - if its empty, don't bother sticking it in the config file
     
    937941            command_element = parseLanguageMetadata(command_str);
    938942            }
    939             if(command_element == null && (command_type.equals(StaticStrings.LEVELS_STR) || command_type.equals(StaticStrings.COMMENTED_LEVELS_STR))) {
    940             command_element = parseLevels(command_str);
    941             }
    942             if(command_element == null && (command_type.equals(StaticStrings.LEVEL_DEFAULT_STR) || command_type.equals(StaticStrings.COMMENTED_LEVEL_DEFAULT_STR))) {
     943            if(command_element == null && command_type.equals(StaticStrings.LEVELS_STR)) {
     944            command_element = parseIndexOptions(command_str, StaticStrings.LEVELS_STR, true);
     945            }
     946            if (command_element == null && command_type.equals(StaticStrings.COMMENTED_LEVELS_STR)) {
     947            command_element = parseIndexOptions(command_str, StaticStrings.LEVELS_STR, false);
     948            }
     949            if(command_element == null && command_type.equals(StaticStrings.LEVEL_DEFAULT_STR)) {
     950            command_element = parseIndexOptionDefault(command_str, StaticStrings.LEVEL_DEFAULT_STR, true);
     951            }
     952            if(command_element == null && command_type.equals(StaticStrings.COMMENTED_LEVEL_DEFAULT_STR)) {
    943953           
    944             command_element = parseLevelDefault(command_str);
    945             }
    946 
     954            command_element = parseIndexOptionDefault(command_str, StaticStrings.LEVEL_DEFAULT_STR, false);
     955            }
     956            if (command_element == null && command_type.equals(StaticStrings.STEMOPTIONS_STR)) {
     957            command_element = parseIndexOptions(command_str, StaticStrings.STEMOPTIONS_STR, true);
     958            }
     959            if (command_element == null && command_type.equals(StaticStrings.COMMENTED_STEMOPTIONS_STR)) {
     960            command_element = parseIndexOptions(command_str, StaticStrings.STEMOPTIONS_STR, false);
     961            }
    947962            if(command_element == null && command_type.equals(StaticStrings.COLLECTIONMETADATA_STR)) {
    948963            command_element = parseMetadata(tokenizer); // Revised to handle multiple lines
     
    12821297    }
    12831298   
    1284     private Element parseLevels(String command_str) {
     1299    private Element parseIndexOptions(String command_str, String type, boolean assigned) {
    12851300    Element command_element = null;
    12861301    try {
    12871302        StringTokenizer tokenizer = new StringTokenizer(command_str);
    1288         // First token is command type (levels)
     1303        // First token is command type
    12891304        String command = tokenizer.nextToken();
    12901305        if(tokenizer.hasMoreTokens()) {
    1291         command_element = document.createElement(StaticStrings.LEVELS_ELEMENT);
    1292         command_element.setAttribute(StaticStrings.ASSIGNED_ATTRIBUTE, (command.equals(StaticStrings.LEVELS_STR) ? StaticStrings.TRUE_STR : StaticStrings.FALSE_STR));
     1306        command_element = document.createElement(StaticStrings.INDEXOPTIONS_ELEMENT);
     1307        command_element.setAttribute(StaticStrings.NAME_ATTRIBUTE,type);
     1308        command_element.setAttribute(StaticStrings.ASSIGNED_ATTRIBUTE, (assigned ? StaticStrings.TRUE_STR : StaticStrings.FALSE_STR));
    12931309        while(tokenizer.hasMoreTokens()) {
    1294             Element level_element = document.createElement(StaticStrings.LEVEL_ELEMENT);
    1295             level_element.setAttribute(StaticStrings.NAME_ATTRIBUTE, tokenizer.nextToken());
    1296             command_element.appendChild(level_element);
    1297             level_element = null;
     1310            Element option_element = document.createElement(StaticStrings.INDEXOPTION_ELEMENT);
     1311            option_element.setAttribute(StaticStrings.NAME_ATTRIBUTE, tokenizer.nextToken());
     1312            command_element.appendChild(option_element);
     1313            option_element = null;
    12981314        }
    12991315        }
     
    13051321    }
    13061322
    1307     private Element parseLevelDefault(String command_str) {
     1323    private Element parseIndexOptionDefault(String command_str, String type, boolean assigned) {
    13081324    Element command_element = null;
    13091325    try {
    13101326        StringTokenizer tokenizer = new StringTokenizer(command_str);
    1311         if(tokenizer.countTokens() >= 2) {
    1312         command_element = document.createElement(StaticStrings.LEVEL_DEFAULT_ELEMENT);
    1313         command_element.setAttribute(StaticStrings.ASSIGNED_ATTRIBUTE, ((tokenizer.nextToken()).equals(StaticStrings.LEVEL_DEFAULT_STR) ? StaticStrings.TRUE_STR : StaticStrings.FALSE_STR)); // is it commented out or not?
    1314         command_element.setAttribute(StaticStrings.NAME_ATTRIBUTE, tokenizer.nextToken());
     1327        // First token is command type
     1328        String command = tokenizer.nextToken();
     1329        if(tokenizer.hasMoreTokens()) {
     1330        command_element = document.createElement(StaticStrings.INDEXOPTION_DEFAULT_ELEMENT);
     1331        command_element.setAttribute(StaticStrings.ASSIGNED_ATTRIBUTE, (assigned ? StaticStrings.TRUE_STR : StaticStrings.FALSE_STR)); // is it commented out or not?
     1332        command_element.setAttribute(StaticStrings.NAME_ATTRIBUTE, type);
     1333        command_element.setAttribute(StaticStrings.VALUE_ATTRIBUTE, tokenizer.nextToken());
    13151334        }
    13161335       
Note: See TracChangeset for help on using the changeset viewer.