List of usage examples for org.apache.commons.lang3 StringUtils splitPreserveAllTokens
public static String[] splitPreserveAllTokens(final String str, final String separatorChars, final int max)
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.
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(); } }