Ignore:
Timestamp:
2013-08-29T15:03:53+12:00 (11 years ago)
Author:
kjdon
Message:

making search param defaults able to be set in config file. uses <paramDefault name=xx value=yy> element. Now all defaults are set in paramDefaults HashMap instead of individual variables. have left index etc ones for now as they are more complicated.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/AbstractGS2FieldSearch.java

    r25893 r28181  
    9494    public AbstractGS2FieldSearch()
    9595    {
     96      super();
     97      paramDefaults.put(RANK_PARAM, RANK_PARAM_RANK);
     98      paramDefaults.put(FIELD_COMBINE_PARAM, FIELD_COMBINE_PARAM_AND);
     99      // paramDefaults.put(FIELD_CASE_PARAM, BOOLEAN_PARAM_ON);
     100      // paramDefaults.put(FIELD_STEM_PARAM, BOOLEAN_PARAM_OFF);
     101      // paramDefaults.put(FIELD_ACCENT_PARAM, BOOLEAN_PARAM_ON);
    96102    }
    97103
     
    108114            return false;
    109115        }
    110 
     116       
    111117        // Get the default level out of <defaultLevel> (buildConfig.xml)
    112118        Element def = (Element) GSXML.getChildByTagName(info, DEFAULT_LEVEL_ELEM);
     
    260266    }
    261267
     268  // if field case/stem/accent defaults are not specified explicitly, we should use case/stem/accent defaults
     269  protected void getSearchParamDefaults(Element search_elem) {
     270   
     271    boolean found_f_stem = false;
     272    boolean found_f_case = false;
     273    boolean found_f_accent = false;
     274    NodeList param_defaults_list = GSXML.getChildrenByTagName(search_elem, GSXML.PARAM_DEFAULT_ELEM);
     275    for (int i=0; i<param_defaults_list.getLength(); i++) {
     276      Element paramdef = (Element)param_defaults_list.item(i);
     277      String name = paramdef.getAttribute(GSXML.NAME_ATT);
     278      String val = paramdef.getAttribute(GSXML.VALUE_ATT);
     279      if (!name.equals("") && !val.equals("")) {
     280    paramDefaults.put(name, val);
     281    if (name.equals(FIELD_STEM_PARAM)) {
     282      found_f_stem = true;
     283    } else if (name.equals(FIELD_CASE_PARAM)) {
     284      found_f_case = true;
     285    } else if (name.equals(FIELD_ACCENT_PARAM)) {
     286      found_f_accent = true;
     287    }
     288    if (!found_f_stem) {
     289      paramDefaults.put (FIELD_STEM_PARAM, paramDefaults.get(STEM_PARAM));
     290    }
     291    if (!found_f_case) {
     292      paramDefaults.put (FIELD_CASE_PARAM, paramDefaults.get(CASE_PARAM));
     293    }
     294    if (!found_f_accent) {
     295      paramDefaults.put (FIELD_ACCENT_PARAM, paramDefaults.get(ACCENT_PARAM));
     296    }
     297
     298      }
     299    }
     300  }
    262301    protected Element getServiceDescription(String service_id, String lang, String subset)
    263302    {
     
    393432    {
    394433        Element param = null;
     434        String param_default = paramDefaults.get(name);
    395435        if (name.equals(LEVEL_PARAM))
    396436        {
     
    416456            String[] vals1_texts = { getTextString("param." + RANK_PARAM + "." + RANK_PARAM_RANK, lang), getTextString("param." + RANK_PARAM + "." + RANK_PARAM_NONE, lang) };
    417457
    418             param = GSXML.createParameterDescription(this.doc, RANK_PARAM, getTextString("param." + RANK_PARAM, lang), GSXML.PARAM_TYPE_ENUM_SINGLE, RANK_PARAM_RANK, vals1, vals1_texts);
     458            param = GSXML.createParameterDescription(this.doc, RANK_PARAM, getTextString("param." + RANK_PARAM, lang), GSXML.PARAM_TYPE_ENUM_SINGLE, param_default, vals1, vals1_texts);
    419459
    420460        }
     
    428468            String[] bool_ops = { "0", "1" };
    429469            String[] bool_texts = { getTextString("param.boolean.off", lang, "AbstractTextSearch"), getTextString("param.boolean.on", lang, "AbstractTextSearch") };
    430             param = GSXML.createParameterDescription(this.doc, name, getTextString("param." + name, lang), GSXML.PARAM_TYPE_BOOLEAN, BOOLEAN_PARAM_ON, bool_ops, bool_texts);
     470            param = GSXML.createParameterDescription(this.doc, name, getTextString("param." + name, lang), GSXML.PARAM_TYPE_BOOLEAN, param_default, bool_ops, bool_texts);
    431471
    432472        }
     
    454494            String[] val_texts = { getTextString("param." + FIELD_COMBINE_PARAM + "." + FIELD_COMBINE_PARAM_AND, lang), getTextString("param." + FIELD_COMBINE_PARAM + "." + FIELD_COMBINE_PARAM_OR, lang), getTextString("param." + FIELD_COMBINE_PARAM + "." + FIELD_COMBINE_PARAM_NOT, lang) };
    455495
    456             param = GSXML.createParameterDescription(this.doc, FIELD_COMBINE_PARAM, "", GSXML.PARAM_TYPE_ENUM_SINGLE, FIELD_COMBINE_PARAM_AND, vals, val_texts);
     496            param = GSXML.createParameterDescription(this.doc, FIELD_COMBINE_PARAM, "", GSXML.PARAM_TYPE_ENUM_SINGLE, param_default, vals, val_texts);
    457497            param.setAttribute(GSXML.PARAM_IGNORE_POS_ATT, "0");
    458498        }
Note: See TracChangeset for help on using the changeset viewer.