@Override protected BooleanClause doGetFacetClause() { SearchContext searchContext = getSearchContext(); FacetConfiguration facetConfiguration = getFacetConfiguration(); JSONObject dataJSONObject = facetConfiguration.getData(); String[] values = null; if (isStatic() && dataJSONObject.has("values")) { JSONArray valuesJSONArray = dataJSONObject.getJSONArray("values"); values = new String[valuesJSONArray.length()]; for (int i = 0; i < valuesJSONArray.length(); i++) { values[i] = valuesJSONArray.getString(i); } } String[] valuesParam = StringUtil.split(GetterUtil.getString(searchContext.getAttribute(getFieldName()))); if (!isStatic() && (valuesParam != null) && (valuesParam.length > 0)) { values = valuesParam; } if ((values == null) || (values.length == 0)) { return null; } BooleanQuery facetQuery = BooleanQueryFactoryUtil.create(searchContext); for (String value : values) { FacetValueValidator facetValueValidator = getFacetValueValidator(); if ((searchContext.getUserId() > 0) && !facetValueValidator.check(searchContext, value)) { continue; } TermQuery termQuery = TermQueryFactoryUtil.create(searchContext, getFieldName(), value); try { facetQuery.add(termQuery, BooleanClauseOccur.SHOULD); } catch (ParseException pe) { _log.error(pe, pe); } } if (!facetQuery.hasClauses()) { return null; } return BooleanClauseFactoryUtil.create( searchContext, facetQuery, BooleanClauseOccur.MUST.getName()); }
protected void addLayoutColumn(Layout layout, String columnId, JSONArray columnJSONArray) throws Exception { if (columnJSONArray == null) { return; } for (int i = 0; i < columnJSONArray.length(); i++) { JSONObject portletJSONObject = columnJSONArray.getJSONObject(i); if (portletJSONObject == null) { String articleId = getJournalArticleId(columnJSONArray.getString(i)); portletJSONObject = getDefaultPortletJSONObject(articleId); } addLayoutColumnPortlet(layout, columnId, portletJSONObject); } }
protected String getDDMFormFieldValueString(DDMFormFieldValue ddmFormFieldValue) { Value value = ddmFormFieldValue.getValue(); String valueString = value.getString(_locale); String type = getDDMFormFieldType(ddmFormFieldValue.getName()); if (type.equals(DDMFormFieldType.SELECT)) { try { JSONArray jsonArray = _jsonFactory.createJSONArray(valueString); if (jsonArray.length() == 1) { valueString = jsonArray.getString(0); } } catch (JSONException je) { ReflectionUtil.throwException(je); } } return valueString; }
protected Map<String, String> getTemplateParams(JSONArray templateParamsJSONArray) { if (templateParamsJSONArray == null) { return null; } Map<String, String> templateParams = new HashMap<String, String>(); for (int i = 0; i < templateParamsJSONArray.length(); i++) { JSONObject templateParamJSONObject = templateParamsJSONArray.getJSONObject(i); JSONArray namesJSONArray = templateParamJSONObject.names(); for (int j = 0; j < namesJSONArray.length(); j++) { String name = namesJSONArray.getString(j); String value = templateParamJSONObject.getString(name); templateParams.put(name, value); } } return templateParams; }