protected Map referenceData(HttpServletRequest request) {
Map criteriaMap = new HashMap();
List categories = new ArrayList();
categories.add(new LabelValue(Constants.SEARCH_STUDY, Constants.SEARCH_STUDY));
categories.add(new LabelValue(Constants.SEARCH_MATRIX, Constants.SEARCH_MATRIX));
categories.add(new LabelValue(Constants.SEARCH_TREE, Constants.SEARCH_TREE));
criteriaMap.put("categories", categories);
List attributes = new ArrayList();
attributes.add(new LabelValue(Constants.SEARCH_AUTHOR, Constants.SEARCH_AUTHOR));
attributes.add(new LabelValue(
Constants.SEARCH_CITATION_TITLE,
Constants.SEARCH_CITATION_TITLE));
attributes.add(new LabelValue(Constants.SEARCH_SOFTWARE, Constants.SEARCH_SOFTWARE));
attributes.add(new LabelValue(Constants.SEARCH_ALGORITHM, Constants.SEARCH_ALGORITHM));
Collections.sort(attributes, LabelValue.CASE_INSENSITIVE_ORDER);
criteriaMap.put("attributes", attributes);
List matches = new ArrayList();
matches.add(new LabelValue("Equals", "Equals"));
matches.add(new LabelValue("Contains", "Contains"));
criteriaMap.put("matches", matches);
return criteriaMap;
}