List of usage examples for org.apache.commons.lang StringUtils splitByWholeSeparator
public static String[] splitByWholeSeparator(String str, String separator)
Splits the provided text into an array, separator string specified.
From source file:org.yes.cart.web.page.component.filterednavigation.impl.AttributeFilteredNavigationSupportImpl.java
/** * {@inheritDoc}//from w w w .j a v a 2s. co m */ @Cacheable(value = "filteredNavigationSupport-attributeFilteredNavigationRecords") public List<FilteredNavigationRecord> getFilteredNavigationRecords(final NavigationContext navigationContext, final String locale, final long productTypeId) { final List<FilteredNavigationRecord> navigationList = new ArrayList<FilteredNavigationRecord>(); if (!navigationContext.isGlobal()) { final List<ProductTypeAttr> ptas = productTypeAttrService.getNavigatableByProductTypeId(productTypeId); if (ptas.isEmpty()) { return Collections.emptyList(); } final List<FilteredNavigationRecordRequest> requests = new ArrayList<FilteredNavigationRecordRequest>(); final Map<String, FilteredNavigationRecordRequest> requestsMap = new HashMap<String, FilteredNavigationRecordRequest>(); for (final ProductTypeAttr pta : ptas) { final String facetName = pta.getAttribute().getCode(); final String fieldName = "facet_" + facetName; if (ProductTypeAttr.NAVIGATION_TYPE_SINGLE.equals(pta.getNavigationType())) { final FilteredNavigationRecordRequest singleMultiValue = new FilteredNavigationRecordRequestImpl( facetName, fieldName, true); requests.add(singleMultiValue); requestsMap.put(facetName, singleMultiValue); } else { final List<Pair<String, String>> rangeValues = new ArrayList<Pair<String, String>>(); final RangeList rangeList = pta.getRangeList(); if (rangeList != null && rangeList.getRanges() != null) { for (RangeNode node : rangeList.getRanges()) { rangeValues.add(new Pair<String, String>(node.getFrom(), node.getTo())); } } if (!rangeValues.isEmpty()) { final FilteredNavigationRecordRequest rangeSingleValue = new FilteredNavigationRecordRequestImpl( facetName, facetName, rangeValues); requests.add(rangeSingleValue); requestsMap.put(facetName, rangeSingleValue); } } } if (requests.isEmpty()) { return Collections.emptyList(); } final List<FilteredNavigationRecord> allNavigationRecordsTemplates = getProductService() .getDistinctAttributeValues(locale, productTypeId); final Map<String, List<Pair<String, Integer>>> facets = getProductService() .findFilteredNavigationRecords(navigationContext.getProductQuery(), requests); for (final FilteredNavigationRecord recordTemplate : allNavigationRecordsTemplates) { if (navigationContext.isFilteredBy(recordTemplate.getCode()) || StringUtils.isBlank(recordTemplate.getValue())) { continue; // do not show already filtered or blank ones } final FilteredNavigationRecordRequest request = requestsMap.get(recordTemplate.getCode()); if (request == null) { LOGFTQ.warn("Unable to get filtered navigation request for record: {}", recordTemplate); continue; } final List<Pair<String, Integer>> counts = facets.get(recordTemplate.getCode()); if (counts == null) { LOGFTQ.warn("Unable to get filtered navigation counts for record: {}, request: {}", recordTemplate, request); continue; } final Iterator<Pair<String, Integer>> countIt = counts.iterator(); while (countIt.hasNext()) { final Pair<String, Integer> count = countIt.next(); if (request.isRangeValue()) { // range record value has the following form "from_value-_-to_value" // range count value has the following form "[from_value, to_value)" final String[] rangeValues = StringUtils.splitByWholeSeparator( count.getFirst().substring(1, count.getFirst().length() - 1), ", "); if (rangeValues.length != 2) { LOGFTQ.error("Unable to parse count range: {}", count.getFirst()); countIt.remove(); continue; } final String compareValue = rangeValues[0] + Constants.RANGE_NAVIGATION_DELIMITER + rangeValues[1]; if (recordTemplate.getValue().equals(compareValue)) { // range value match final Integer candidateResultCount = count.getSecond(); if (candidateResultCount != null && candidateResultCount > 0) { final FilteredNavigationRecord record = recordTemplate.clone(); record.setCount(candidateResultCount); navigationList.add(record); } countIt.remove(); break; } } else if (recordTemplate.getValue().equals(count.getFirst())) { // single value match final Integer candidateResultCount = count.getSecond(); if (candidateResultCount != null && candidateResultCount > 0) { final FilteredNavigationRecord record = recordTemplate.clone(); record.setCount(candidateResultCount); navigationList.add(record); } countIt.remove(); break; } } } } return navigationList; }
From source file:umich.ms.batmass.gui.viewers.map2d.components.ToolTipMap2D.java
@Override public void setTipText(String tipText) { // String[] lines = tipText.split(separator); String[] lines = StringUtils.splitByWholeSeparator(tipText, separator); StringBuilder sb = new StringBuilder(tipText.length()); sb.append("<html>"); sb.append(StringUtils.join(lines, "<br/>")); sb.append("</html>"); super.setTipText(sb.toString()); }