Example usage for org.apache.commons.lang StringUtils splitByWholeSeparator

List of usage examples for org.apache.commons.lang StringUtils splitByWholeSeparator

Introduction

In this page you can find the example usage for org.apache.commons.lang StringUtils splitByWholeSeparator.

Prototype

public static String[] splitByWholeSeparator(String str, String separator) 

Source Link

Document

Splits the provided text into an array, separator string specified.

Usage

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());
}