public void handleAction(final ActionParameters params) throws ActionException { log.debug("in handle action"); final String term = params.getHttpParam(PARAM_TERM); if (term == null || term.equals("")) { throw new ActionParamsException("Search string was null"); } final String error = SearchWorker.checkLegalSearch(term); if (!SearchWorker.STR_TRUE.equals(error)) { // write error message key ResponseHelper.writeResponse(params, error); } else { final Locale locale = params.getLocale(); final SearchCriteria sc = new SearchCriteria(); final String geographical_names = params.getHttpParam(PARAM_GEO_NAMES); final String addresses = params.getHttpParam(PARAM_ADDRESSES); final String epsg = params.getHttpParam(PARAM_EPSG_KEY); sc.setSearchString(term); sc.setSRS(epsg); // eg. EPSG:3067 sc.setLocale(locale.getLanguage()); sc.addParam(PARAM_REGION, params.getHttpParam(PARAM_REGION, "")); sc.addParam(PARAM_COUNTRY, params.getHttpParam(PARAM_COUNTRY, "")); sc.addParam(PARAM_FILTER, params.getHttpParam(PARAM_FILTER, "false")); sc.addParam(PARAM_NORMAL, params.getHttpParam(PARAM_NORMAL, "false")); sc.addParam(PARAM_LON, params.getHttpParam(PARAM_LON, "")); sc.addParam(PARAM_LAT, params.getHttpParam(PARAM_LAT, "")); sc.addParam(PARAM_ADDRESSES, params.getHttpParam(PARAM_ADDRESSES)); sc.addParam(PARAM_LOCATION_TYPE, params.getHttpParam(PARAM_LOCATION_TYPE, "")); sc.addParam(PARAM_NAME_LANG, params.getHttpParam(PARAM_NAME_LANG, "")); sc.addParam(PARAM_NEAREST, params.getHttpParam(PARAM_NEAREST, "")); if (isFuzzy(sc)) { sc.addParam(PARAM_FUZZY, "true"); } for (String channelId : channels) { if (geographical_names != null && geographical_names.equals("true") && channelId.equals(ELFGEOLOCATOR_CHANNEL)) { log.debug("adding channel: ELFGEOLOCATOR_CHANNEL"); sc.addChannel(channelId); } if (addresses != null && addresses.equals("true") && channelId.equals(ELFADDRESSLOCATOR_CHANNEL)) { log.debug("adding channel: ELFADDRESSLOCATOR_CHANNEL"); sc.addChannel(channelId); } } final JSONObject result = SearchWorker.doSearch(sc); ResponseHelper.writeResponse(params, result); } }