Example usage for org.apache.commons.lang3 StringUtils splitPreserveAllTokens

List of usage examples for org.apache.commons.lang3 StringUtils splitPreserveAllTokens

Introduction

In this page you can find the example usage for org.apache.commons.lang3 StringUtils splitPreserveAllTokens.

Prototype

public static String[] splitPreserveAllTokens(final String str, final String separatorChars, final int max) 

Source Link

Document

Splits the provided text into an array with a maximum length, separators specified, preserving all tokens, including empty tokens created by adjacent separators.

The separator is not included in the returned String array.

Usage

From source file:org.apache.carbondata.processing.loading.DataLoadProcessBuilder.java

/**
 * set sort column info in configuration
 * @param carbonTable carbon table//  w ww  .j a v  a 2 s  . c  o  m
 * @param loadModel load model
 * @param configuration configuration
 */
private static void setSortColumnInfo(CarbonTable carbonTable, CarbonLoadModel loadModel,
        CarbonDataLoadConfiguration configuration) {
    List<String> sortCols = carbonTable.getSortColumns(carbonTable.getTableName());
    SortScopeOptions.SortScope sortScope = SortScopeOptions.getSortScope(loadModel.getSortScope());
    if (!SortScopeOptions.SortScope.LOCAL_SORT.equals(sortScope) || sortCols.size() == 0
            || StringUtils.isBlank(loadModel.getSortColumnsBoundsStr())) {
        if (!StringUtils.isBlank(loadModel.getSortColumnsBoundsStr())) {
            LOGGER.warn("sort column bounds will be ignored");
        }

        configuration.setSortColumnRangeInfo(null);
        return;
    }
    // column index for sort columns
    int[] sortColIndex = new int[sortCols.size()];
    boolean[] isSortColNoDict = new boolean[sortCols.size()];

    DataField[] outFields = configuration.getDataFields();
    int j = 0;
    boolean columnExist;
    for (String sortCol : sortCols) {
        columnExist = false;

        for (int i = 0; !columnExist && i < outFields.length; i++) {
            if (outFields[i].getColumn().getColName().equalsIgnoreCase(sortCol)) {
                columnExist = true;

                sortColIndex[j] = i;
                isSortColNoDict[j] = !outFields[i].hasDictionaryEncoding();
                j++;
            }
        }

        if (!columnExist) {
            throw new CarbonDataLoadingException("Field " + sortCol + " does not exist.");
        }
    }

    String[] sortColumnBounds = StringUtils.splitPreserveAllTokens(loadModel.getSortColumnsBoundsStr(),
            CarbonLoadOptionConstants.SORT_COLUMN_BOUNDS_ROW_DELIMITER, -1);
    for (String bound : sortColumnBounds) {
        String[] fieldInBounds = StringUtils.splitPreserveAllTokens(bound,
                CarbonLoadOptionConstants.SORT_COLUMN_BOUNDS_FIELD_DELIMITER, -1);
        if (fieldInBounds.length != sortCols.size()) {
            String msg = new StringBuilder(
                    "The number of field in bounds should be equal to that in sort columns.")
                            .append(" Expected ").append(sortCols.size()).append(", actual ")
                            .append(String.valueOf(fieldInBounds.length)).append(".")
                            .append(" The illegal bound is '").append(bound).append("'.").toString();
            throw new CarbonDataLoadingException(msg);
        }
    }

    SortColumnRangeInfo sortColumnRangeInfo = new SortColumnRangeInfo(sortColIndex, isSortColNoDict,
            sortColumnBounds, CarbonLoadOptionConstants.SORT_COLUMN_BOUNDS_FIELD_DELIMITER);
    configuration.setSortColumnRangeInfo(sortColumnRangeInfo);
}

From source file:org.apache.carbondata.processing.loading.steps.DataConverterProcessorStepImpl.java

/**
 * initialize partitioner for sort column ranges
 *//*from  w  ww.  java  2s.  co m*/
private void initializeSortColumnRangesPartitioner() {
    // convert user specified sort-column ranges
    SortColumnRangeInfo sortColumnRangeInfo = configuration.getSortColumnRangeInfo();
    int rangeValueCnt = sortColumnRangeInfo.getUserSpecifiedRanges().length;
    CarbonRow[] convertedSortColumnRanges = new CarbonRow[rangeValueCnt];
    for (int i = 0; i < rangeValueCnt; i++) {
        Object[] fakeOriginRow = new Object[configuration.getDataFields().length];
        String[] oneBound = StringUtils.splitPreserveAllTokens(sortColumnRangeInfo.getUserSpecifiedRanges()[i],
                sortColumnRangeInfo.getSeparator(), -1);
        // set the corresponding sort column
        int j = 0;
        for (int colIdx : sortColumnRangeInfo.getSortColumnIndex()) {
            fakeOriginRow[colIdx] = oneBound[j++];
        }
        CarbonRow fakeCarbonRow = new CarbonRow(fakeOriginRow);
        convertFakeRow(fakeCarbonRow, sortColumnRangeInfo);
        convertedSortColumnRanges[i] = fakeCarbonRow;
    }
    // sort the range bounds (sort in carbon is a little different from what we think)
    Arrays.sort(convertedSortColumnRanges,
            new RawRowComparator(sortColumnRangeInfo.getSortColumnIndex(),
                    sortColumnRangeInfo.getIsSortColumnNoDict(),
                    CarbonDataProcessorUtil.getNoDictDataTypes(configuration.getTableSpec().getCarbonTable())));

    // range partitioner to dispatch rows by sort columns
    this.partitioner = new RangePartitionerImpl(convertedSortColumnRanges,
            new RawRowComparator(sortColumnRangeInfo.getSortColumnIndex(),
                    sortColumnRangeInfo.getIsSortColumnNoDict(),
                    CarbonDataProcessorUtil.getNoDictDataTypes(configuration.getTableSpec().getCarbonTable())));
}

From source file:org.flowr.utils.NamingStrategy.java

private static String camelCase(String name, String separatorChars, String space) {
    String[] tokens = StringUtils.splitPreserveAllTokens(name, separatorChars, 0);
    StringBuilder b = new StringBuilder();
    for (String word : tokens) {
        if (space != null && b.length() > 0) {
            b.append(space);//from  w w w  .  j a  v a  2s .  c  o  m
        }
        b.append(StringUtils.capitalize(word));
    }
    return b.toString();
}

From source file:org.spicyurl.UrlParser.java

private void parseQueryFregmant(String queryFragment) {
    if (StringUtils.isEmpty(queryFragment)) {
        url.setQuery(queryFragment);//from w  w w. j  a  v a  2  s. co m
        return;
    }

    String[] parts = StringUtils.splitPreserveAllTokens(queryFragment, FRAGMENT_SEP, 2);
    url.setQuery(parts[0]);
    if (parts.length == 2) {
        url.setFragment(parts[1]);
    }
}

From source file:org.wikipedia.nirvana.nirvanabot.templates.TemplateFindItem.java

public static TemplateFindItem parseTemplateFindData(String templateFindData) throws BadFormatException {
    int slashes = StringTools.howMany(templateFindData, '/');
    if (slashes == 2) {
        String parts[] = StringUtils.splitPreserveAllTokens(templateFindData, "/", 3);
        parts = StringUtils.stripAll(parts);
        if (parts[0].isEmpty()) {
            throw new BadFormatException();
        }/*ww  w .  ja v a  2 s. c  om*/
        return new TemplateFindItem(parts[0], parts[1], parts[2]);
    } else if (slashes == 1) {
        String parts[] = StringUtils.splitPreserveAllTokens(templateFindData, "/", 3);
        parts = StringUtils.stripAll(parts);
        if (parts[0].isEmpty()) {
            throw new BadFormatException();
        }
        return new TemplateFindItem(parts[0], parts[1], "");
    } else if (slashes == 0) {
        if (templateFindData.trim().isEmpty()) {
            throw new BadFormatException();
        }
        return new TemplateFindItem(templateFindData.trim(), "", "");
    } else {
        throw new BadFormatException();
    }
}